Volume Profile Histogram [SS]I usually (and by usually, I mean the past year xD) release a significant indicator as my Christmas gift to the community on Christmas Eve. Last year, it was the Z-Score buy and sell signal; this year, it's something a little more conventional. So here is this year’s gift—hope you like it! 🎁
Seems like everyone has their take on Volume Profiles (aka SVP or VSP). I decided to create one, and in true Steversteves fashion, you can expect to find all the goodies that come with most of my stuff, including a volume profile presented in a bell-curve/histogram style (chart above) and statistical frequency tables showing the cases by ranges:
And it wouldn't be a true Steversteves indicator without some kind of ATR thing:
So, what does it do?
At the end of the day, it is a form of an SVP indicator. However, it is meant to operate on a larger scale, sorting volume in a traditional bell-curve style. In addition to displaying volume, it breaks down buying vs. selling volume. Selling volume is classified as such when the open is greater than close, while buying is when close is greater than open. This breakdown allows you to see the distribution, by price range, of where selling and buying occur.
This permits the indicator to provide 2 Points of Control (POCs). A POC is defined as an area of high volume activity. Because buying and selling volumes are broken down into two, we can identify areas with high selling and areas with high buying. Sometimes they coincide, sometimes they differ.
If we look at SQQQ, for example:
We can see that the bearish point of control is one point below the bullish POC. This is interesting because it essentially shows where people may be "panic selling" or setting their stop-outs. If SQQQ drops below 18.8, then it's likely to trigger panic selling, as indicated by the histogram.
Conversely, we can observe that traders tend to position long between $18 and $24. The POC is noted in the stats table and also displayed on the chart. Bullish POC is shown in purple, bearish in yellow. These, of course, can be toggled off.
The Frequency Table:
The frequency table shows how many observations were obtained in each price range. The histogram illustrates the cumulative volume traded, while the frequency simply counts how many cases occurred over the lookback period.
ATR Range Analytics by Volume:
The indicator also has the ability to display range analytics by volume. When you toggle on the range analytics by volume option, a range chart will appear:
www.tradingview.com
The range chart goes from the minimum recorded volume to the maximum recorded volume in the period, showing the average range and direction associated with this volume. This is crucial to pay attention to because not all stocks behave the same way.
For example, in the chart above (AMD), we can see that low volume produces a general bearish bias, and high volume produces a general bullish bias. However, if we look at the range analytics for SPY:
Low volume has the inverse effect. Low volume is associated with a more bullish bias, and high volume indicates a more bearish bias. In the ATR chart, the threshold volume to transition from bullish bias to bearish bias is approximately > 78,607,268 traded shares.
The Stats Table:
The stats table can be toggled on or off. It simply displays the POCs and the time range for the VSP. The default time range is 1 trading year (252 days), assuming you are on the daily timeframe. However, you can use this on any timeframe.
The percentages displayed in the histogram is the cumulative percent of buying and selling volume independently. So when you see the percentage on the selling histogram, its the percent of cumulative selling only. Same for the buying.
And that's the indicator! I hope you enjoy it. Let me know your thoughts. I hope you all have safe holidays, a Merry Christmas for you North Americans, and a Happy Christmas for you UKers, and whatever else you celebrate/care about and do! Safe trades, everyone, and enjoy your holidays! 🎁🎄🎄🎄⭐⭐⭐ 🕎 🕎 🕎
Cerca negli script per " TABLE "
Bias AnalyzerName: Bias Analyzer
Category: Market Analyzer
Timeframe: 1H and 1D, depending on the Analysis type.
Technical Analysis: Usually when we think about a Trading System we start from an idea. This idea comes normally from observation and the study of the market.
Have we ever observed a market - for example Bitcoin - and thought that it increases at the start of a USA session? Great, this is a well-known category of Trading System and the purpose of the Bias Analyzer is to study these phenomena.
There are different types of Trading System that we can classify considering the market in-efficiency that we use to our advantage. In this case we make the Bias. Literally "inclination" or "presupposition" or precisely "tendency" of the price to go up or down in a temporal way.
The characteristics of the Bias depend on how much the Bias is persistent on the market since the analysed period. therefore we can consider:
Hourly Bias : analysing the hourly behaviours during the week. Trades normally last from a few hours to a few days.
Seasonal Bias : analysing the behaviour of the weeks in the monthly or annual context, evaluating the seasons.
Suggested usage: The possibilities of the tool are infinite, these are some scenarios of use:
Development of Intraday Trading Systems based on Hourly Bias with possible filters for specific days of the week.
Development of a Multi-day Trading System based on daily Bias with monthly analysis.
To identify the best day to execute our investment through Dollar Cost Average with a bit of healthy buy the dip
Main features:
Hourly Summary organized in Week
The cells contain the sum of the various price deltas for the single hour. The transparency indicates the frequency in which the candles close positive or negative. This information is available both in a synthetic way, as in the first column "Sum", and for each day of the week.
Hourly Details organized in different entry/exit
Shows the cumulative data of the various deltas, considering the purchase and the sale at certain times. In the rows are represented the buying hours and in the columns the selling hours.
Daily Summary organized in Months
The cells contain the summation of the various price deltas for the single day.
Hourly Details organized in different entry/exit
Allows to visualise the detailed analysis table, choosing to do it for all the months or for a specific month and shows the cumulative data of the various deltas, considering the purchase and the sale in certain days.
Configuration: You can configure the tool easily and completely.
Analysis
Calculate from Close to Open : this is the core of the whole analysis where the "Price Delta" to be calculated is defined. At this moment there is the possibility to calculate the distance between opening and closing.
Calculate in Percent or Cash : this allows to calculate the Price Delta in Percent or in Cash.
Analysis on 1H Timeframe
Show Hourly Summary on : allows to visualise the summary analysis table of the week. The cells contain the sum of the various price deltas for the single hour. The transparency indicates the frequency in which the candles close positive or negative. This information is available both in a synthetic way, as in the first column "Sum", and for each day of the week. At the bottom left there is also data which allows us to understand how many candles are being analysed. At the bottom of each day it is possible to visualise the cumulative data of the day. The position of the table is customizable.
Show Hourly Details of on : allows to visualise the detailed analysis table, choosing to do it for all days or for a specific day, and shows the cumulative data of the various deltas, considering the purchase and the sale at certain times. In the rows are represented the buying hours and in the columns the selling hours. For example, going to the table "All Days" we can see in the cell of row 13 and in column 22 the cumulative data of a possible buy on 13 and a sell at the end of 22. To facilitate the research of the values there is a configurable transparency system.
Analysis on 1D Timeframe
Show Daily Summary on : allows to visualise the summary analysis table of the month. The cells contain the summation of the various price deltas for the single day: The first row is the summation of all days of the month for all months in the analysis period, while the other rows represent the analysis for the various days of the individual months.
Show Daily Details of on : allows to visualise the detailed analysis table, choosing to do it for all the months or for a specific month and shows the cumulative data of the various deltas, considering the purchase and the sale in certain days. In the rows are represented the buying days and in the columns the selling days. For example, going to the table "All Months" we can see in the cell at row 1 and at column 3 the cumulative of a possible purchase on the 1st and the sale on the 3rd. To facilitate the research of the values, there is a configurable transparency system.
Table Layout
Size : allows to define the size of the text in the table.
Precision : it is possible to define the decimal precision of the calculations presented in the tables.
Transparency Factor : allows the application of a multiplication factor when the table calculates the transparency of detail tables.
Colours : allows to specify the colours of Profit, Loss and Neutral, besides to adapt a style coherent with the Dark Mode or Light Mode of Trading View
Volatility Filter
It is possible to directly apply a filter to the time series on which the delta is calculated. The volatility filter uses the ATR - an indicator that allows you to calculate the volatility in a given period. Briefly: the higher the ATR value, the higher the volatility. Therefore the filter works by comparing the volatility on two periods and indicates compression or expansion.
Backtest Dates
In order to facilitate the identification of in-sample and out-of-sample data, as well as the degradation of a given behaviour, it is possible to specify a period in which to do the analysis.
40 Ticker Cross-Sectional Z-Scores [BackQuant]40 Ticker Cross-Sectional Z-Scores
BackQuant’s 40 Ticker Cross-Sectional Z-Scores is a powerful portfolio management strategy that analyzes the relative performance of up to 40 different assets, comparing them on a cross-sectional basis to identify the top and bottom performers. This indicator computes Z-scores for each asset based on their log returns and evaluates them relative to the mean and standard deviation over a rolling window. The Z-scores represent how far an asset's return deviates from the average, and these values are used to rank the assets, allowing for dynamic asset allocation based on performance.
By focusing on the strongest-performing assets and avoiding the weakest, this strategy aims to enhance returns while managing risk. Additionally, by adjusting for standard deviations, the system offers a risk-adjusted method of ranking assets, making it suitable for traders who want to dynamically allocate capital based on performance metrics rather than just price movements.
Key Features
1. Cross-Sectional Z-Score Calculation:
The system calculates Z-scores for 40 different assets, evaluating their log returns against the mean and standard deviation over a rolling window. This enables users to assess the relative performance of each asset dynamically, highlighting which assets are performing better or worse compared to their historical norms. The Z-score is a useful statistical tool for identifying outliers in asset performance.
2. Asset Ranking and Allocation:
The system ranks assets based on their Z-scores and allocates capital to the top performers. It identifies the top and bottom assets, and traders can allocate capital to the top-performing assets, ensuring that their portfolio is aligned with the best performers. Conversely, the bottom assets are removed from the portfolio, reducing exposure to underperforming assets.
3. Rolling Window for Mean and Standard Deviation Calculations:
The Z-scores are calculated based on rolling means and standard deviations, making the system adaptive to changing market conditions. This rolling calculation window allows the strategy to adjust to recent performance trends and minimize the impact of outdated data.
4. Mean and Standard Deviation Visualization:
The script provides real-time visualizations of the mean (x̄) and standard deviation (σ) of asset returns, helping traders quickly identify trends and volatility in their portfolio. These visual indicators are useful for understanding the current market environment and making more informed allocation decisions.
5. Top & Bottom Performer Tables:
The system generates tables that display the top and bottom performers, ranked by their Z-scores. Traders can quickly see which assets are outperforming and underperforming. These tables provide clear and actionable insights, helping traders make informed decisions about which assets to include in their portfolio.
6. Customizable Parameters:
The strategy allows traders to customize several key parameters, including:
Rolling Calculation Window: Set the window size for the rolling mean and standard deviation calculations.
Top & Bottom Tickers: Choose how many of the top and bottom assets to display and allocate capital to.
Table Orientation: Select between vertical or horizontal table formats to suit the user’s preference.
7. Forward Test & Out-of-Sample Testing:
The system includes out-of-sample forward tests, ensuring that the strategy is evaluated based on real-time performance, not just historical data. This forward testing approach helps validate the robustness of the strategy in dynamic market conditions.
8. Visual Feedback and Alerts:
The system provides visual feedback on the current asset rankings and allocations, with dynamic labels and plots on the chart. Additionally, users receive alerts when allocations change, keeping them informed of important adjustments.
9. Risk Management via Z-Scores and Std Dev:
The system’s approach to asset selection is based on Z-scores, which normalize performance relative to the historical mean. By incorporating standard deviation, it accounts for the volatility and risk associated with each asset. This allows for more precise risk management and portfolio construction.
10. Note on Mean Reversion Strategy:
If you take the inverse of the signals provided by this indicator, the strategy can be used for mean-reversion rather than trend-following. This would involve buying the underperforming assets and selling the outperforming ones. However, it's important to note that this approach does not work well with highly correlated assets, as the relationship between the assets could result in the same directional movement, undermining the effectiveness of the mean-reversion strategy.
References
www.uts.edu.au
onlinelibrary.wiley.com
www.cmegroup.com
Final Thoughts
The 40 Ticker Cross-Sectional Z-Scores strategy offers a data-driven approach to portfolio management, dynamically allocating capital based on the relative performance of assets. By using Z-scores and standard deviations, this strategy ensures that capital is directed to the strongest performers while avoiding weaker assets, ultimately improving the risk-adjusted returns of the portfolio. Whether you’re focused on trend-following or looking to explore mean-reversion strategies, this flexible system can be tailored to suit your investment goals.
Volume pressure by GSK-VIZAG-AP-INDIA🔍 Volume Pressure by GSK-VIZAG-AP-INDIA
🧠 Overview
“Volume Pressure” is a multi-timeframe, real-time table-based volume analysis tool designed to give traders a clear and immediate view of buying and selling pressure across custom-selected timeframes. By breaking down buy volume, sell volume, total volume, and their percentages, this indicator helps traders identify demand/supply imbalances and volume momentum in the market.
🎯 Purpose / Trading Use Case
This indicator is ideal for intraday and short-term traders who want to:
Spot aggressive buying or selling activity
Track volume dynamics across multiple timeframes *1 min time frame will give best results*
Use volume pressure as a confirming tool alongside price action or trend-based systems
It helps determine when large buying/selling activity is occurring and whether such behavior is consistent across timeframes—a strong signal of institutional interest or volume-driven trend shifts.
🧩 Key Features & Logic
Real-Time Table Display: A clean, dynamic table showing:
Buy Volume
Sell Volume
Total Volume
Buy % of total volume
Sell % of total volume
Multi-Time frame Analysis: Supports 8 user-selectable custom time frames from 1 to 240 minutes, giving flexibility to analyze volume pressure at various granularities.
Color-Coded Volume Bias:
Green for dominant Buy pressure
Red for dominant Sell pressure
Yellow for Neutral
Intensity-based blinking for extreme values (over 70%)
Dynamic Data Calculation:
Uses volume * (close > open) logic to estimate buy vs sell volumes bar-by-bar, then aggregates by timeframe.
⚙️ User Inputs & Settings
Timeframe Selectors (TF1 to TF8): Choose any 8 timeframes you want to monitor volume pressure across.
Text & Color Settings:
Customize text colors for Buy, Sell, Total volumes
Choose Buy/Sell bias colors
Enable/disable blinking for visual emphasis on extremes
Table Appearance:
Set header color, metric background, and text size
Table positioning: top-right, bottom-right, etc.
Blinking Highlight Toggle: Enable this to visually highlight when Buy/Sell % exceeds 70%—a sign of strong pressure.
📊 Visual Elements Explained
The table has 6 rows and 10 columns:
Row 0: Headers for Today and TF1 to TF8
Rows 1–3: Absolute values (Buy Vol, Sell Vol, Total Vol)
Rows 4–5: Relative percentages (Buy %, Sell %), with dynamic background color
First column shows the metric names (e.g., “Buy Vol”)
Cells blink using alternate background colors if volume pressure crosses thresholds
💡 How to Use It Effectively
Use Buy/Sell % rows to confirm potential breakout trades or identify volume exhaustion zones
Look for multi-timeframe confluence: If 5 or more TFs show >70% Buy pressure, buyers are in control
Combine with price action (e.g., breakouts, reversals) to increase conviction
Suitable for equities, indices, futures, crypto, especially on lower timeframes (1m to 15m)
🏆 What Makes It Unique
Table-based MTF Volume Pressure Display: Most indicators only show volume as bars or histograms; this script summarizes and color-codes volume bias across timeframes in a tabular format.
Customization-friendly: Full control over colors, themes, and timeframes
Blinking Alerts: Rare visual feature to capture user attention during extreme pressure
Designed with performance and readability in mind—even for fast-paced scalping environments.
🚨 Alerts / Extras
While this script doesn’t include TradingView alert functions directly, the visual blinking serves as a strong real-time alert mechanism.
Future versions may include built-in alert conditions for buy/sell bias thresholds.
🔬 Technical Concepts Used
Volume Dissection using close > open logic (to estimate buyer vs seller pressure)
Simple aggregation of volume over custom timeframes
Table plotting using Pine Script table.new, table.cell
Dynamic color logic for bias identification
Custom blinking logic using na(bar_index % 2 == 0 ? colorA : colorB)
⚠️ Disclaimer
This indicator is a tool for analysis, not financial advice. Always backtest and validate strategies before using any indicator for live trading. Past performance is not indicative of future results. Use at your own risk and apply proper risk management.
✍️ Author & Signature
Indicator Name: Volume Pressure
Author: GSK-VIZAG-AP-INDIA
TradingView Username: prowelltraders
Relative Performance SuiteOverview
The Relative Performance Suite (RPS) is a versatile and comprehensive indicator designed to evaluate an asset's performance relative to a benchmark. By offering multiple methods to measure performance, including Relative Performance, Alpha, and Price Ratio, this tool helps traders and investors assess asset strength, resilience, and overall behavior in different market conditions.
Key Features:
✅ Multiple Performance Measures:
Choose from various relative performance calculations, including:
Relative Performance:
Measures how much an asset has outperformed or underperformed its benchmark over a given period.
Relative Performance (Proportional):
A proportional version of relative performance,
factoring in scaling effects.
Relative Performance (MA Based):
Uses moving averages to smooth performance fluctuations.
Alpha:
A measure of an asset’s performance relative to what would be expected based on its beta and the benchmark’s return. It represents the excess return above the risk-free rate after adjusting for market risk.
Price Ratio:
Compares asset prices directly to determine relative value over time.
✅ Customizable Moving Averages:
Apply different moving average types (SMA, EMA, SMMA, WMA, VWMA) to smooth price inputs and refine calculations.
✅ Beta Calculation:
Includes a Beta measure used in Alpha calculation, which users can toggle the visibility of helping users understand an asset's sensitivity to market movements.
✅ Risk-Free Rate Adjustment:
Incorporate risk-free rates (e.g., US Treasury yields, Fed Funds Rate) for a more accurate calculation of Alpha.
✅ Logarithmic Returns Option:
Users can switch between standard returns and log returns for more refined performance analysis.
✅ Dynamic Color Coding:
Identify outperformance or underperformance with intuitive color coding.
Option to color bars based on relative strength, making chart analysis easier.
✅ Customizable Tables for Data Display:
Overview table summarizing key metrics.
Explanation table offering insights into how values are derived.
How to Use:
Select a Benchmark: Choose a comparison symbol (e.g., TOTAL or SPX ).
Pick a Performance Metric: Use different modes to analyze relative performance.
Customize Calculation Methods: Adjust moving averages, timeframes, and log returns based on preference.
Interpret the Colors & Tables: Utilize the dynamic coloring and tables to quickly assess market conditions.
Ideal For:
Traders looking to compare individual asset performance against an index or benchmark.
Investors analyzing Alpha & Beta to understand risk-adjusted returns.
Market analysts who want a visually intuitive and data-rich performance tracking tool.
This indicator provides a powerful and flexible way to track relative asset strength, helping users make more informed trading decisions.
Risk RewardThe Risk Reward indicator, developed by OmegaTools, is a versatile technical tool designed to help traders visualize and evaluate potential reward and risk levels in their trades. By comparing recent price action against moving averages and volatility deviations, it calculates a range-weighted assessment of upside reward and downside risk. It provides a clear, color-coded visual representation of these potential ranges, along with critical support and resistance levels to aid in trade decision-making. This indicator is ideal for traders seeking to optimize their risk-reward ratio and make informed trade management decisions.
Features
Reward and Risk Visualization: Provides a histogram showing the relative potential of upside reward versus downside risk based on current price action.
Dynamic Support and Resistance Levels: Calculates and plots key price levels based on extreme of historical volatility, helping traders to identify important price zones.
Trade Size Customization: Users can adjust the trade size, and the indicator will calculate and display the estimated risk and reward in monetary terms based on the contract value.
Adaptive Volatility Extensions: Automatically adjusts extension lines based on volume, helping traders anticipate future price ranges and potential breakouts or breakdowns.
Customizable Visuals: Allows users to personalize the color scheme for bullish and bearish scenarios, making the chart more intuitive and user-friendly.
User Guide
Trade Size (size): Adjust the trade size in units (default is 1). This parameter impacts the risk and reward calculation shown in the summary table.
Length (lnt): Set the length for the exponential moving average (EMA) and the highest/lowest price calculations. This length determines the sensitivity of the indicator.
Different Visual (down): A boolean input to adjust the method for calculating downside risk. When set to true, it uses a different visual scheme.
Bullish Color (upc): Customize the color of the bullish (upside) histogram and support levels.
Bearish Color (dnc): Customize the color of the bearish (downside) histogram and resistance levels.
Plots
First Probability: Displays a histogram representing the higher value between reward and risk. It is colored according to whether the upside or downside is greater, providing a clear signal for potential trade direction.
Second Probability: A secondary histogram plot that visualizes the lower value between reward and risk, offering an additional perspective on the trade’s risk-reward balance.
Low Level/High Level: Displays dynamic support and resistance levels based on historical price data and volatility deviations.
Extension Lines: Visualize potential future price levels using volatility-adjusted projections. These lines help traders anticipate where price could move based on current conditions.
On-Chart Labels and Risk-Reward Table:
Risk and Reward Calculations: The indicator calculates the monetary value of downside risk and upside reward based on the provided trade size, volatility measures, and price movements.
Risk/Reward Table: Displayed directly on the chart, showing the downside risk and upside reward in easy-to-understand numerical values. This helps traders quickly assess the feasibility of a trade.
How It Works:
Moving Average Comparison: The indicator first calculates the 21-period (default) exponential moving average (EMA). It then compares the current price against this moving average to determine whether the market is in a bullish or bearish phase.
Deviation Calculation: It calculates the average deviation between the price and the EMA for both bullish and bearish movements, which is used to establish dynamic support and resistance levels.
Risk-Reward Calculation: Based on the highest and lowest price levels over the set period and the calculated deviations, it determines the potential upside reward and downside risk. The reward is calculated as the distance between the current price and the upper resistance levels, while the risk is determined as the distance to the lower support levels.
Visual Representation
The indicator plots histograms representing the relative magnitude of potential reward and risk.
Support and resistance levels are dynamically plotted on the chart using circles and lines, helping traders easily spot key areas of interest.
Extension lines are drawn to visualize potential future price levels based on current volatility.
Risk/Reward Table: This feature displays the calculated monetary risk and reward based on the trade size. It updates dynamically with price changes, offering a constant reference point for traders to evaluate their trade setup.
Practical Application
Identify Entry Points: Use the dynamic support and resistance levels to identify ideal trade entry points. The histogram helps determine whether the potential reward justifies the risk.
Risk Management: The calculated downside risk provides traders with an objective view of where to place stop-loss levels, while the upside reward aids in setting profit targets.
Trade Execution: By visually assessing whether reward outweighs risk, traders can make more informed decisions on trade execution, with the risk-reward ratio clearly displayed on the chart.
Best Practices:
Use Alongside Other Indicators: While this indicator offers a powerful standalone tool for assessing risk and reward, it works best when combined with other trend or momentum indicators for confirmation.
Adjust Inputs Based on Market Conditions: Adjust the length and trade size inputs depending on the asset being traded and the time horizon, as different assets may require different sensitivity settings.
ATR Price Range Prediction V.2### ATR Price Range Prediction V.2
This script calculates the expected high and low prices for the current day based on the Average True Range (ATR) and displays the proportion of days where the daily range (high - low) is greater than or equal to the ATR. Additionally, the script provides an option to adjust the size of the text displayed in the top-right corner of the chart.
#### How It Works
1. **ATR Calculation**: The script calculates the ATR for a specified period (`atrPeriod`). ATR is a measure of volatility that represents the average range between the high and low prices over a specified number of periods.
2. **Expected High and Low Calculation**:
- **Expected High**: Calculated by adding the ATR value to the low price of the current day.
- **Expected Low**: Calculated by subtracting the ATR value from the high price of the current day.
3. **Proportion Calculation**: The script calculates the proportion of days where the daily range (high - low) is greater than or equal to the ATR value. This proportion is updated in real-time as new data comes in.
4. **Table Display**: Instead of displaying labels on each candle, the script shows the expected high, expected low, and the calculated proportion in a table located at the top-right corner of the chart. The size of the text in this table can be adjusted using the `Table Size` input.
5. **Color Coding**: The script changes the color of the bars to yellow if the daily range is greater than or equal to the ATR value, making it easy to identify these bars visually.
#### How to Use
- **ATR Period (`atrPeriod`)**: Adjust the period for the ATR calculation using the input parameter. The default value is 14.
- **Table Size (`tableSizeOption`)**: Choose the size of the text displayed in the table. Options include `tiny`, `small`, `normal`, `large`, and `huge`.
- **Expected High and Low**: Use the green and red lines to identify potential target prices or stop-loss levels for your trades. The green line represents the expected high, and the red line represents the expected low.
- **Proportion**: The table in the top-right corner of the chart shows the proportion of days where the daily range is greater than or equal to the ATR value. This can provide insight into the volatility of the asset.
- **Color Coding**: Yellow bars indicate days where the daily range is greater than or equal to the ATR value.
---
### ภาษาไทย
### ATR คาดการณ์ราคาสูงสุดและต่ำสุด พร้อมสัดส่วน
สคริปต์นี้คำนวณราคาสูงสุดและต่ำสุดที่คาดการณ์สำหรับวันปัจจุบันโดยอิงจากค่าเฉลี่ยช่วงที่แท้จริง (ATR) และแสดงสัดส่วนของวันที่ช่วงราคาต่อวัน (สูง - ต่ำ) มากกว่าหรือเท่ากับค่า ATR นอกจากนี้ยังมีตัวเลือกในการปรับขนาดข้อความที่แสดงในกล่องข้อความมุมขวาบนของกราฟ
#### วิธีการทำงาน
1. **การคำนวณ ATR**: สคริปต์คำนวณค่า ATR สำหรับช่วงเวลาที่กำหนด (`atrPeriod`) ATR เป็นมาตรวัดความผันผวนที่แสดงช่วงเฉลี่ยระหว่างราคาสูงสุดและต่ำสุดในช่วงเวลาที่กำหนด
2. **การคำนวณราคาสูงสุดและต่ำสุดที่คาดการณ์**:
- **ราคาสูงสุดที่คาดการณ์**: คำนวณโดยการบวกค่า ATR กับราคาต่ำสุดของวันปัจจุบัน
- **ราคาต่ำสุดที่คาดการณ์**: คำนวณโดยการลบค่า ATR จากราคาสูงสุดของวันปัจจุบัน
3. **การคำนวณสัดส่วน**: สคริปต์คำนวณสัดส่วนของวันที่ช่วงราคาต่อวัน (สูง - ต่ำ) มากกว่าหรือเท่ากับค่า ATR สัดส่วนนี้จะอัปเดตแบบเรียลไทม์เมื่อมีข้อมูลใหม่เข้ามา
4. **การแสดงผลในตาราง**: แทนที่จะแสดงป้ายกำกับบนแท่งเทียนแต่ละแท่ง สคริปต์จะแสดงราคาสูงสุดที่คาดการณ์ ราคาต่ำสุดที่คาดการณ์ และสัดส่วนที่คำนวณในตารางที่มุมขวาบนของกราฟ โดยสามารถปรับขนาดข้อความในตารางได้
5. **การใช้สี**: สคริปต์จะเปลี่ยนสีของแท่งเทียนเป็นสีเหลืองหากช่วงราคาต่อวันมากกว่าหรือเท่ากับค่า ATR ทำให้สามารถระบุแท่งเทียนเหล่านี้ได้ง่ายขึ้น
#### วิธีการใช้งาน
- **ATR Period (`atrPeriod`)**: ปรับช่วงเวลาสำหรับการคำนวณ ATR โดยใช้พารามิเตอร์การป้อนค่า ค่าเริ่มต้นคือ 14
- **Table Size (`tableSizeOption`)**: เลือกขนาดข้อความที่แสดงในตาราง ตัวเลือกได้แก่ `tiny`, `small`, `normal`, `large`, และ `huge`
- **ราคาสูงสุดและต่ำสุดที่คาดการณ์**: ใช้เส้นสีเขียวและสีแดงเพื่อระบุราคาที่เป็นเป้าหมายหรือระดับการหยุดขาดทุนสำหรับการซื้อขายของคุณ เส้นสีเขียวแสดงถึงราคาสูงสุดที่คาดการณ์และเส้นสีแดงแสดงถึงราคาต่ำสุดที่คาดการณ์
- **สัดส่วน**: ตารางที่มุมขวาบนของกราฟแสดงสัดส่วนของวันที่ช่วงราคาต่อวันมากกว่าหรือเท่ากับค่า ATR ซึ่งสามารถให้ข้อมูลเชิงลึกเกี่ยวกับความผันผวนของสินทรัพย์
- **การใช้สี**: แท่งเทียนสีเหลืองบ่งบอกถึงวันที่ช่วงราคาต่อวันมากกว่าหรือเท่ากับค่า ATR
_____
High/Low of week: Stats & Day of Week tendencies// Purpose:
-To show High of Week (HoW) day and Low of week (LoW) day frequencies/percentages for an asset.
-To further analyze Day of Week (DoW) tendencies based on averaged data from all various custom weeks. Giving a more reliable measure of DoW tendencies ('Meta Averages').
-To backtest day-of-week tendencies: across all asset history or across custom user input periods (i.e. consolidation vs trending periods).
-Education: to see how how data from a 'hard-defined-week' may be misleading when seeking statistical evidence of DoW tendencies.
// Notes & Tips:
-Only designed for use on DAILY timeframe.
-Verification table is to make sure HoW / LoW DAY (referencing previous finished week) is printing correctly and therefore the stats table is populating correctly.
-Generally, leaving Timezone input set to "America/New_York" is best, regardless of your asset or your chart timezone. But if misaligned by 1 day =>> tweak this timezone input to correct
-If you want to use manual backtesting period (e.g. for testing consolidation periods vs trending periods): toggle these settings on, then click the indicator display line three dots >> 'Reset Points' to quickly set start & end dates.
// On custom week start days:
-For assets like BTC which trade 7 days a week, this is quite simple. Pick custom start day, use verification table to check all is well. See the start week day & time in said verification table.
-For traditional assets like S&P which trade only 5 days a week and suffer from occasional Holidays, this is a bit more complicated. If the custom start day input is a bank holiday, its custom 'week' will be discounted from the data set. E.g.1: if you choose 'use custom start day' and set it to Monday, then bank holiday Monday weeks will be discounted from the data set. E.g.2: If you choose 'use custom start day' and set it to Thursday, then the Holiday Thursday custom week (e.g Thanksgiving Thursday >> following Weds) would be discounted from the data set.
// On 'Meta Averages':
-The idea is to try and mitigate out the 'continuation bias' that comes from having a fixed week start/end time: i.e. sometimes a market is trending through the week start/end time, so the start/end day stats are over-weighted if one is trying to tease out typical weekly profile tendencies or typical DoW tendencies. You'll notice this if you compare the stats with various custom start days ('bookend' start/end days are always more heavily weighted). I wanted to try to mitigate out this 'bias' by cycling through all the possible new week start/end days and taking an average of the results. i.e. on BTC/USD the 'meta average' for Tuesday would be the average of the Tuesday HoW frequencies from the set of all 7 possible custom weeks(Mon-Sun, Tues-Mon, Weds-Tues, etc etc).
// User Inputs:
~Week Start:
-use custom week start day (default toggled OFF); Choose custom week start day
-show Meta Averages (default toggled ON)
~Verification Table:
-show table, show new week lines, number of new week lines to show
-table formatting options (position, color, size)
-timezone (only for tweaking if printed DoW is misaligned by 1 day)
~Statistics Table:
-show table, table formatting options (position, color, size)
~Manual Backtesting:
-Use start date (default toggled OFF), choose start date, choose vline color
-Use end date (defautl toggled OFF), choose end date, choose vline color
// Demo charts:
NQ1! (Nasdaq), Full History, Traditional week (Mon>>Friday) stats. And Meta Averages. Annotations in purple:
NQ1! (Nasdaq), Full History, Custom week (custom start day = Wednesday). And Meta Averages. Annotations in purple:
Stock Performance Dashboard + Sector PerformanceThis indicator, Stock Performance Dashboard + Sector Performance, provides a comprehensive visual analysis of both individual stock performance and sectoral trends directly on your TradingView chart.
Key Features:
Performance Dashboard Table:
Displays the stock’s returns over multiple timeframes (1, 5, 10, 20, 50, 200 days) and compares them to a selected benchmark index (default: NIFTYMIDSML400).
Highlights whether the stock is outperforming the index for each period, shows the difference in performance, and includes an RSI (Relative Strength Index) column for additional momentum insight.
Calculates and displays a “conviction” score and level based on how often the stock outperforms the index across periods.
Sector Performance Table:
Ranks and displays the top-performing sectors from a predefined list of major NSE sector indices over four key periods (1D, 5D, 30D, 50D).
For each period, the top 5 sectors are shown, with color-coded performance for quick visual assessment.
Customization:
Includes options for dark/light mode, table size, position, and which columns to display.
Supports a compact “mini mode” for simplified visualization.
Usage:
This tool is ideal for traders and investors who want a quick, at-a-glance comparison of a stock’s short- and long-term momentum versus its benchmark, as well as a live snapshot of sector rotation and leadership in the Indian market. All data is presented in clear, color-coded tables for actionable decision-making.
Fund Master Plus (TV Rev1, Dec2024)License: Mozilla Public License 2.0 (Open Source)
Version: Pine Script™ v6
Indicator Name: Fund Master Plus (TV Rev1, Dec2024)
Short Title: Fund Master Plus
About Fund Master Plus
Fund Master Plus indicator is an oscillating technical analysis tool designed to simulate the fund inflow and outflow trend.
Key features:
1. Fund Master Value and Candle
The candle highlights the direction of the Fund Master value.
Green candles represent an upward trend, while red candles indicate a downward trend.
When the candle crossover 0, it is a sign of the start of mid term bull, vice versa.
When the candle is above 0, it is a sign of mid-term bull, vice versa.
2. Fund Master Bar
This bar provides added visual representation of the Fund Master value.
Green bars represent and upward trend, while red bars indicate a downward trend.
3. FM EMA (Exponential Moving Average)
The Fund Master EMA (Exponential Moving Average) helps smooth out FM value fluctuations
and identify the overall trend.
When the candle crossover FM EMA, it is a sign of the start of short term bull, vice vera.
When the candle is above FM EMA, it is a sign of short term bull, vice versa.
4. EMA of FM EMA
This is an EMA of the Fund Master EMA, which can provide additional insights into the
trend's strength.
5. Candle Turn Green or Red
This feature generates alerts to signal potential trend changes.
6. Bottom Deviation & Top Deviation
Line plot and label of these deviation will show on indicator and the price chart to help user
identify potential buying and selling opportunities.
7. Alertcondition for Turn Green or Turn Red
User can set the alert using the Create Alert (the Clock Icon).
8. Table Summary
A table summary is provided to show indicator name, FM value, FM candle status,
Crossover, Crossunder, Turn Green, Turn Red status, Bar Number etc.
A tooltip for Filter Setting and a filter status check.
SOP to use the indicator:
Table (GR1):
Show Table: This option enables or disables the display of the table.
Text Size: This option allows you to set the text size for the table entries.
Width: This option sets the width of the table.
Fund Master Candle Color Setting (GR2):
FM candle will up by default.
This option enables the color setting of Fund Master candle.
Up: This option sets the color of the Fund Master candle for uptrend.
Down: This option sets the color of the Fund Master candle for downtrend.
Fund Master Bar and Color Setting (GR3):
Show Fund Master Bar: This option enables or disables the display of the Fund Master bar.
Up: This option sets the color of the Fund Master bar for uptrend.
Down: This option sets the color of the Fund Master bar for downtrend.
Fund Master EMA plots (GR4):
Show FM EMA: This option enables or disables the display of the Fund Master EMA line.
Look Back Period: This option sets the lookback period for the Fund Master EMA calculation.
EMA Color: This option sets the color of the Fund Master EMA line.
Show EMA of FM EMA: This option enables or disables the display of the EMA of the Fund Master EMA line.
Look Back Period 2: This option sets the lookback period for the EMA of the Fund Master EMA calculation.
Alerts: Fund Master Crossover & Crossunder EMA Line or 0 (GR5):
Show FM Crossover 0: This option enables or disables the display of the alert for FM crossover above the 0 line.
Show FM Crossunder 0: This option enables or disables the display of the alert for FM crossover below the 0 line.
Show FM Crossover EMA: This option enables or disables the display of the alert for FM crossover above the EMA line.
Show FM Crossunder EMA: This option enables or disables the display of the alert for FM crossover below the EMA line.
Bottom and Top Deviation (GR6):
Show Bottom Deviation: This option enables or disables the display of the bottom deviation line.
Show Top Deviation: This option enables or disables the display of the top deviation line.
Turn Green, Turn Red Alert (GR7):
Show Turn Green/Red Alerts: This option enables or disables the display of alerts for when the Fund Master value changes direction.
Current & Turn Green/Red Alerts: This option sets the number of bars to look back for the turn green/red alerts.
Band and User Input Setting (GR8):
100: This option enables or disables the display of the 100 band.
0: This option enables or disables the display of the 0 band.
-100: This option enables or disables the display of the -100 band.
User Input: This option enables or disables the display of a custom band based on user input.
Value: This option sets the value for the custom band.
Disclaimer
Attached chart is for the purpose of illustrating the use of indicator, no recommendation of buy/sell.
In this chart, all features in the setting are turned on (default and non default).
This chart is used to demonstrate the FM trend movement from mid-term bear to mid-term bull,
short-term bear and bull, bottom deviation and top deviation.
Hope this help. Merry Christmas and Happy New Year.
Scoopy StacksWaffle Around Multiple
(Open, High, Low, Close) Stacks On
Pre/Post Market & (Daily, Weekly,
Monthly, Yearly) Sessions With
Meticulous Columns, Rows, Tooltips,
Colors, Custom Ideas, and Alerts.
Sessions Use Two Step Incremental Values
Default Value: (1) Shows Two Previous
(O, H, L, C); Increasing Value Swaps
Sessions With Next Two Stacks.
⬛️ KEY WORDS:
🟢 Crossover | 🔴 Crossunder
📗 High | 📕 Low
📔 Open | 📓 Close
🥇 First Idea | 🥈 Second Idea
🥉 Third Idea | 🎖️ Fourth Idea
🟥 ALERTS:
Default Option: (Per Bar)
Alerts Once Conditions Are Met
(Bar Close) Alerts When Bar Closes
Default Option: (Reg)
Alerts During Regular Market
Trading Hours, (0930-1600)
(Ext) Alerts During Extended
Market Hours, (1600-0930)
(24/7) Alerts All Day
Optional Preferences:
Regular Alerts - Stocks
Extended Alerts - Futures
24/7 Alerts - Crypto
🟧 STACKS:
Default Value: (1)
Incremental Stack Value, Increasing Value
Swaps Sessions With the Next Two Stacks
(✓) Swap Stacks?
Pre/Post Market High/Lows,
1-2 Day High/Lows, 1-2 Week High/Lows,
1-2 Month High/Lows, 1-2 Year High/Lows
( ) Swap Stacks?
Pre/Post Market Open/Close,
1-2 Day Open/Close, 1-2 Week Open/Close,
1-2 Month Open/Close, 1-2 Year Open/Close
🟨 EXAMPLES:
Default Stack:
🟢 | 📗 Pre Market High (PRE) | 4600.00
🔴 | 📕 Post Market Low (POST) | 420.00
Optional: (Open)
🟢 | 📔 Post Market Open (POST) | 4400.00
Optional: (Close)
🔴 | 📓 Pre Market Close (PRE) | 430.00
Default Stack Value: (1)
🔴 | 📗 1 Day High (1DH) | 460.00
Next Stack Value: (3)
🟢 | 📕 4 Day Low (4DL) | 420.00
Optional: (Open)
🔴 | 📔 2 Day Open (2DO) | 440.00
Optional: (Close)
🟢 | 📓 3 Day Close (3DC) | 430.00
Default Stack Value: (5)
🟢 | 📗 5 Week High (5WH) | 460.00
Next Stack Value: (7)
🔴 | 📕 8 Week Low (8WL) | 420.00
Optional: (Open)
🔴 | 📔 7 Week Open (7WO) | 4400.00
Optional: (Close)
🟢 | 📓 6 Week Close (6WC) | 430.00
Default Stack Value: (9)
🔴 | 📗 9 Month High (9MH) | 460.00
Next Stack Value: (11)
🟢 | 📕 12 Month Low (12ML) | 420.00
Optional: (Open)
🟢 | 📔 11 Month Open (11MO) | 4400.00
Optional: (Close)
🔴 | 📓 10 Month Close (10MC) | 430.00
Default Stack Value: (13)
🟢 | 📗 13 Year High (13YH) | 460.00
Next Stack Value: (15)
🟢 | 📕 16 Year Low (16YL) | 420.00
Optional: (Open)
🔴 | 📔 15 Year Open (15YO) | 4400.00
Optional: (Close)
🔴 | 📓 14 Year Close (14YC) | 430.00
🟩 TABLES:
Default Value: (1)
Moves Table Up, Down, Left, or Right
Based on Second Default Value
First Default Value: (Top Right)
Sets Table Placement, Middle Center
Allows Table To Move In All Directions
Second Default Value: (Default)
Fixed Table Position, Switching Values
Moves Direction of the Table
🟦 IDEAS:
(✓) Show Ideas?
Shows Four Ideas With Custom Texts
and Values; Ideas Are Based Around
Post-It Note Reminders with Alerts
Suggestions For Text Ideas:
Take Profit, Stop Loss, Trim, Hold,
Long, Short, Bounce Spot, Retest,
Chop, Support, Resistance, Buy, Sell
🟪 EXAMPLES:
Default Value: (5)
Shows the Custom Table Value For
Sorted Table Positions and Alerts
Default Text: (🥇)
Shown On First Table Cell and
Message Appearing On Alerts
Alert Shows: 🟢 | 🥇 | 5.00
Default Value: (10)
Shows the Custom Table Value For
Sorted Table Positions and Alerts
Default Text: (🥈)
Shown On Second Table Cell and
Message Appearing On Alerts
Alert Shows: 🔴 | 🥈 | 10.00
Default Value: (50)
Shows the Custom Table Value For
Sorted Table Positions and Alerts
Default Text: (🥉)
Shown On Third Table Cell and
Message Appearing On Alerts
Alert Shows: 🟢 | 🥉 | 50.00
Default Value: (100)
Shows the Custom Table Value For
Sorted Table Positions and Alerts
Default Text: (🎖️)
Shown On Fourth Table Cell and
Message Appearing On Alerts
Alert Shows: 🔴 | 🎖️ | 100.00
⬛️ REFERENCES:
Pre-market Highs & Lows on regular
trading hours (RTH) chart
By Twingall
Previous Day Week Highs & Lows
By Sbtnc
Screener for 40+ instruments
By QuantNomad
Daily Weekly Monthly Yearly Opens
By Meliksah55
DataChartLibrary "DataChart"
Library to plot scatterplot or heatmaps for your own set of data samples
draw(this)
draw contents of the chart object
Parameters:
this : Chart object
Returns: current chart object
init(this)
Initialize Chart object.
Parameters:
this : Chart object to be initialized
Returns: current chart object
addSample(this, sample, trigger)
Add sample data to chart using Sample object
Parameters:
this : Chart object
sample : Sample object containing sample x and y values to be plotted
trigger : Samples are added to chart only if trigger is set to true. Default value is true
Returns: current chart object
addSample(this, x, y, trigger)
Add sample data to chart using x and y values
Parameters:
this : Chart object
x : x value of sample data
y : y value of sample data
trigger : Samples are added to chart only if trigger is set to true. Default value is true
Returns: current chart object
addPriceSample(this, priceSampleData, config)
Add price sample data - special type of sample designed to measure price displacements of events
Parameters:
this : Chart object
priceSampleData : PriceSampleData object containing event driven displacement data of x and y
config : PriceSampleConfig object containing configurations for deriving x and y from priceSampleData
Returns: current chart object
Sample
Sample data for chart
Fields:
xValue : x value of the sample data
yValue : y value of the sample data
ChartProperties
Properties of plotting chart
Fields:
title : Title of the chart
suffix : Suffix for values. It can be used to reference 10X or 4% etc. Used only if format is not format.percent
matrixSize : size of the matrix used for plotting
chartType : Can be either scatterplot or heatmap. Default is scatterplot
outliersStart : Indicates the percentile of data to filter out from the starting point to get rid of outliers
outliersEnd : Indicates the percentile of data to filter out from the ending point to get rid of outliers.
backgroundColor
plotColor : color of plots on the chart. Default is color.yellow. Only used for scatterplot type
heatmapColor : color of heatmaps on the chart. Default is color.red. Only used for heatmap type
borderColor : border color of the chart table. Default is color.yellow.
plotSize : size of scatter plots. Default is size.large
format : data representation format in tooltips. Use mintick.percent if measuring any data in terms of percent. Else, use format.mintick
showCounters : display counters which shows totals on each quadrants. These are single cell tables at the corners displaying number of occurences on each quadrant.
showTitle : display title at the top center. Uses the title string set in the properties
counterBackground : background color of counter table cells. Default is color.teal
counterTextColor : text color of counter table cells. Default is color.white
counterTextSize : size of counter table cells. Default is size.large
titleBackground : background color of chart title. Default is color.maroon
titleTextColor : text color of the chart title. Default is color.white
titleTextSize : text size of the title cell. Default is size.large
addOutliersToBorder : If set, instead of removing the outliers, it will be added to the border cells.
useCommonScale : Use common scale for both x and y. If not selected, different scales are calculated based on range of x and y values from samples. Default is set to false.
plotchar : scatter plot character. Default is set to ascii bullet.
ChartDrawing
Chart drawing objects collection
Fields:
properties : ChartProperties object which determines the type and characteristics of chart being plotted
titleTable : table containing title of the chart.
mainTable : table containing plots or heatmaps.
quadrantTables : Array of tables containing counters of all 4 quandrants
Chart
Chart type which contains all the information of chart being plotted
Fields:
properties : ChartProperties object which determines the type and characteristics of chart being plotted
samples : Array of Sample objects collected over period of time for plotting on chart.
displacements : Array containing displacement values. Both x and y values
displacementX : Array containing only X displacement values.
displacementY : Array containing only Y displacement values.
drawing : ChartDrawing object which contains all the drawing elements
PriceSampleConfig
Configs used for adding specific type of samples called PriceSamples
Fields:
duration : impact duration for which price displacement samples are calculated.
useAtrReference : Default is true. If set to true, price is measured in terms of Atr. Else is measured in terms of percentage of price.
atrLength : atrLength to be used for measuring the price based on ATR. Used only if useAtrReference is set to true.
PriceSampleData
Special type of sample called price sample. Can be used instead of basic Sample type
Fields:
trigger : consider sample only if trigger is set to true. Default is true.
source : Price source. Default is close
highSource : High price source. Default is high
lowSource : Low price source. Default is low
tr : True range value. Default is ta.tr
trend_vol_stopThe description below is copied from the script's comments. Because TradingView does not allow me to edit this description, please refer to the script's comments section, as well as the release notes, for the most up-to-date information.
----------
Usage:
The inputs define the trend and the volatility stop.
Trend:
The trend is defined by a moving average crossover. When the short
(or fast) moving average is above the long (slow) moving average, the
trend is up. Otherwise, the trend is down. The inputs are:
long: the number of periods in the long/slow moving average.
short: the number of periods in the short/fast moving average.
The slow moving average is shown in various colors (see explanation
below. The fast moving average is a faint blue.
Volatility stop:
The volatility stop has two modes, percentage and rank. The percentage
stop is given in terms of annualized volatility. The rank stop is given
in terms of percentile.
stop_pct and stop_rank are initialized with "-1". You need to set one of
these to the values you want after adding the indicator to your chart.
This is the only setting that requires your input.
mode: choose "rank" for a rank stop, "percentage" for a percentage stop.
vol_window: the number of periods in the historical volatility
calculation. e.g. "30" means the volatility will be a weighted
average of the previous 30 periods. applies to both types of stop.
stop_pct: the volatility limit, annualized. for example, "50" means
that the trend will not be followed when historical volatility rises
above 50%.
stop_rank: the trend will not be followed when the volatility is in the
N-th percentile. for example, "75" means the trend will not be
followed when the current historical volatility is greater than 75%
of previous volatilities.
rank_window: the number of periods in the rank percentile calculation.
for example, if rank_window is "252" and "stop_rank" is "80", the
trend will not be followed when current historical volatility is
greater than 80% of the previous 252 historical volatilities.
Outputs:
The outputs include moving averages, to visually identify the trend,
a volatility table, and a performance table.
Moving averages:
The slow moving average is colored green in an uptrend, red in a
downtrend, and black when the volatility stop is in place.
Volatility table:
The volatility table gives the current historical volatility, annualized
and expressed as a whole number percentage. E.g. "65" means the
instrument's one standard deviation annual move is 65% of its price.
The current rank is expressed, also as a whole number percentage. E.g.
"15" means the current volatility is greater than 15% of previous
volatilities. For convenience, the volatilities corresponding to the
0, 25, 50, 75, and 100th percentiles are also shown.
Performance table:
The performance table shows the current strategy's performance versus
buy-and-hold. If the trend is up, the instrument's return for that
period is added to the strategy's return, because the strategy is long.
If the trend is down, the negative return is added, because the strategy
is short. If the volatility stop is in (the slow moving average is
black), that period's return is excluded from the strategy returns.
Every period's return is added to the buy-and-hold returns.
The table shows the average return, the standard deviation of returns,
and the sharpe ratio (average return / standard deviation of returns).
All figures are expressed as per-period, whole number percentages.
For exmaple, "0.1" in the mean column on a daily chart means a
0.1% daily return.
The number of periods (samples) for each strategy is also shown.
Dynamic Portfolio TrackerDynamic Portfolio Tracker
The Dynamic Portfolio Tracker is a visual tool for actively managing and monitoring a multi-asset portfolio directly on TradingView. It allows users to input up to 15 custom assets (with a default setup for 5), define how much of each asset they hold, and assign a target allocation percentage to each. The script then calculates live market prices, total portfolio value, current vs. target weightings, and provides clear, color-coded instructions on whether to buy, sell, or hold each asset. It displays all this data in an on-chart table, showing both the dollar amount and the quantity to adjust for each asset, helping users keep their portfolio aligned with their strategy in real time.
How to Use the Inputs (What Each Field Means)
1. Portfolio Assets (Tickers)
Fields: Asset 1 Ticker, Asset 2 Ticker, …, Asset 15 Ticker
What it does: Lets you select which assets (crypto, stocks, etc.) you want to track. These are live symbols pulled from TradingView.
2. Asset Quantities
Fields: Asset 1 Amount, Asset 2 Amount, …, Asset 15 Amount
What it means: How much of each asset you currently hold. For example:
• 0.03 BTC
• 2.1 ETH
Why it’s needed: The script multiplies this by the live price to calculate the current dollar value of each asset in your portfolio.
3. Target %
Fields: Asset 1 Implied %, Asset 2 Implied %, …, Asset 15 Implied %
What it means: Your desired allocation for each asset. For example:
• 40% BTC
• 20% ETH
• 10% SOL, etc.
Important: These must total 100% or less across all assets. The script checks this and shows an error if the total exceeds 100%.
The Dynamic Portfolio Tracker displays two powerful on-chart tables:
1. Main Table — Per Asset Breakdown
This table shows detailed, real-time information for each asset in your portfolio. Each row represents a different asset, and each column has a specific meaning:
Column What It Means
Asset = The symbol of the asset (e.g., BTCUSD, ETHUSD), auto-stripped from the exchange name.
Price = The current market price of the asset, pulled live from TradingView.
Quantity = How much of that asset you currently hold, entered manually in the inputs.
Target % = The percentage of your total portfolio you want this asset to represent.
Actual % = What percentage of your portfolio it currently makes up (based on price × quantity).
Target Value = How much (in $) this asset should be worth in your portfolio.
Actual Value = How much (in $) this asset is currently worth.
Instruction = Whether to Buy, Sell, or Hold to match your target allocation.
Value Change = The dollar amount you’d need to buy/sell to rebalance this asset.
Units to Trade = The number of asset units to buy/sell to reach the target value.
2. Portfolio Summary Table — Portfolio Totals
This smaller table appears in the top-right corner and summarizes your entire portfolio at a glance:
Target % = Total of all your assigned target allocations (should equal 100%).
Actual % = Actual portfolio composition (always 100% unless your capital is zero).
Target Value = Total value your portfolio should be based on your target percentages.
Actual Value = Current live total value of your portfolio.
If there’s a discrepancy between Target Value and Actual Value, the difference is shown in each row of the main table, so you can adjust individual assets accordingly.
Privacy First: Hide Sensitive Financial Data
A unique feature of this tool is the ability to hide sensitive financial data, such as:
• Target Value
• Actual Value
• Total Portfolio Value
You can turn these off using toggle settings, and they’ll be replaced with a crossed-out eye icon (👁️🗨️) — just like on modern crypto exchanges. This feature makes the script safe for streaming, screenshots, or sharing publicly while protecting your privacy.
But more importantly:
Feelings are the enemy of good investing.
Seeing the value of your portfolio fluctuate can trigger fear or greed. By hiding your dollar values, you’re not just securing your data — you’re reducing the temptation to react emotionally.
It’s just numbers. Systems over Feelings.
Table Automatically Adapts to Your Asset Count
The Dynamic Portfolio Tracker is designed to scale with your portfolio. Simply choose how many assets you want to track (up to 15), and the table will automatically resize to fit exactly that number — no wasted space or empty rows.
• Select 1 to 15 assets using the “Number of Assets” input
• The table expands or contracts dynamically to show only those rows
• All calculations, summaries, and layout elements adjust accordingly in real time
This keeps the interface clean, focused, and perfectly tailored to your setup — whether you’re tracking 3 coins or managing a full portfolio of 12+ tokens.
Customize Your Table to Match Your Style
The Dynamic Portfolio Tracker offers a full suite of visual customization options, allowing you to tailor the table to your charting style or stream layout. You can:
• Choose text colors for labels, values, and headers
• Set background colors for the full table and header row — or turn them off completely for a clean, transparent look
• Control border and frame settings, including color, thickness, or disabling them entirely
• Pick custom colors for Buy and Sell signals in the rebalance column
• Adjust table font size from tiny to large to match your resolution or preferences
Special Thanks
This tool wouldn’t exist without the knowledge and inspiration gained through The Real World. A sincere thank you to the Investing Master, the Guides, and Professor Adam — your frameworks and lessons brought clarity, discipline, and structure to this build.
And of course, glory to L4 — where real men are made.
Stock Profit Calculator — Live Mode
## Overview
This Pine Script indicator calculates, in real time, the financial impact of a stock trade, including purchase/sale commissions, capital gains tax (CGT), and return on investment (ROI). It displays a compact table with key values and also calculates the breakeven price to see at what level the net P/L returns to zero.
---
## Inputs and customization
- **Number of shares:** `shares` defines the purchased quantity.
- **Purchase price:** `buyPrice` is the unit cost; the total purchase is calculated from this.
- **Live selling price:** `sellPrice = close` uses the last bar’s price for live valuation.
- **Fixed or percentage commissions:** `useFixedComm` selects the model.
- **Fixed:** `buyCommFixed`, `sellCommFixed`.
- **Percentage:** `buyCommPct`, `sellCommPct` (applied to notional value).
- **CGT rate:** `cgtRate` is the percentage rate, applied only in case of profit.
- **Table position:** `tablePosition` with predefined options.
- **Visual style:** `colTxt`, `colPos`, `colNeg`, `colBg`, `colHdr`, `colFrame` for text color, positive/negative P/L, background, header, and borders.
> Tip: if your broker uses minimum fees or composite fees, turn on “Use fixed commissions?” and enter the two fixed fees; otherwise, use the percentage model.
---
## Calculation logic
#### Purchase costs
- **Total purchase:**
\
- **Purchase commission:**
\
- **Net entry cost:**
\
#### Sale revenues
- **Total sale (with live price):**
\
- **Sale commission:**
\
- **Net exit revenue:**
\
#### P/L and taxes
- **Gross P/L:**
\
- **CGT (only on positive P/L):**
\
- **Net P/L:**
\
#### ROI
- **Percentage ROI on invested capital:**
\
#### Breakeven
- **Gross breakeven** shown in the table: the unit price that makes the net P/L exactly zero, including purchase cost and an estimate of the sale commission.
\
In the script, if commissions are fixed it adds the fixed sale fee; if percentage-based, the sale component is not included in this row (conservative approximation).
- **Breakeven with tax** (calculated but not shown):
\
Useful when you want the post-CGT result to be exactly zero. Not displayed in the table but ready for use.
> Note: CGT applies only on positive profits; near breakeven, the tax effect is null or only kicks in beyond a threshold. That’s why the script distinguishes between the “gross” and “with tax” versions.
---
## On-screen table
- **Displayed rows:**
- **Purchase:** total net entry cost (with commissions).
- **Sale:** total net exit revenue (with commissions).
- **Gross P/L:** difference between netSell and netBuy.
- **CGT:** estimated tax only if there’s a gain.
- **Net P/L:** P/L after taxes.
- **ROI (%):** percentage return on netBuy.
- **Breakeven:** gross unit breakeven price.
- **Conditional colors:**
- **P/L and ROI:** green for ≥ 0, red for < 0.
- **Headers and cells:** customizable via the color inputs.
- **Efficient refresh:** the table updates only on the last bar via `barstate.islast` to avoid unnecessary redraws.
---
## Behavior and performance
- **Overlay:** displayed on the price chart.
- **Persistent variable:** table is created once with `var table`.
- **Live price:** `sellPrice` follows the current `close`, making P/L, ROI, and breakeven dynamic.
---
## Limitations and suggestions
- **Commission model:** when using percentage commissions, the breakeven in the table doesn’t add the sale percentage fee in the “breakevenPrice” formula. For more precision, you could solve the equation including the percentage fee on exit.
- **Breakeven with tax:** `breakevenWithTax` is a linear estimate; near zero profit, tax may be null. You might choose to display it instead of, or alongside, the gross breakeven.
- **Precision and formatting:** values are shown with `format.mintick`. If the symbol has very small ticks, consider a custom format for better readability.
- **Edge cases:** ROI is undefined if `netBuy = 0` (unlikely in practice but good to note).
> Pro tip: if you want to show the breakeven with tax, add a “Breakeven (post-CGT)” row printing `breakevenWithTax`. If you prefer a single row, replace the shown value with the post-CGT one.
---
Smart MTF S/R Levels[BullByte]
Smart MTF S/R Levels
Introduction & Motivation
Support and Resistance (S/R) levels are the backbone of technical analysis. However, most traders face two major challenges:
Manual S/R Marking: Drawing S/R levels by hand is time-consuming, subjective, and often inconsistent.
Multi-Timeframe Blind Spots: Key S/R levels from higher or lower timeframes are often missed, leading to surprise reversals or missed opportunities.
Smart MTF S/R Levels was created to solve these problems. It is a fully automated, multi-timeframe, multi-method S/R detection and visualization tool, designed to give traders a complete, objective, and actionable view of the market’s most important price zones.
What Makes This Indicator Unique?
Multi-Timeframe Analysis: Simultaneously analyzes up to three user-selected timeframes, ensuring you never miss a critical S/R level from any timeframe.
Multi-Method Confluence: Integrates several respected S/R detection methods—Swings, Pivots, Fibonacci, Order Blocks, and Volume Profile—into a single, unified system.
Zone Clustering: Automatically merges nearby levels into “zones” to reduce clutter and highlight areas of true market consensus.
Confluence Scoring: Each zone is scored by the number of methods and timeframes in agreement, helping you instantly spot the most significant S/R areas.
Reaction Counting: Tracks how many times price has recently interacted with each zone, providing a real-world measure of its importance.
Customizable Dashboard: A real-time, on-chart table summarizes all key S/R zones, their origins, confluence, and proximity to price.
Smart Alerts: Get notified when price approaches high-confluence zones, so you never miss a critical trading opportunity.
Why Should a Trader Use This?
Objectivity: Removes subjectivity from S/R analysis by using algorithmic detection and clustering.
Efficiency: Saves hours of manual charting and reduces analysis fatigue.
Comprehensiveness: Ensures you are always aware of the most relevant S/R zones, regardless of your trading timeframe.
Actionability: The dashboard and alerts make it easy to act on the most important levels, improving trade timing and risk management.
Adaptability: Works for all asset classes (stocks, forex, crypto, futures) and all trading styles (scalping, swing, position).
The Gap This Indicator Fills
Most S/R indicators focus on a single method or timeframe, leading to incomplete analysis. Manual S/R marking is error-prone and inconsistent. This indicator fills the gap by:
Automating S/R detection across multiple timeframes and methods
Objectively scoring and ranking zones by confluence and reaction
Presenting all this information in a clear, actionable dashboard
How Does It Work? (Technical Logic)
1. Level Detection
For each selected timeframe, the script detects S/R levels using:
SW (Swing High/Low): Recent price pivots where reversals occurred.
Pivot: Classic floor trader pivots (P, S1, R1).
Fib (Fibonacci): Key retracement levels (0.236, 0.382, 0.5, 0.618, 0.786) over the last 50 bars.
Bull OB / Bear OB: Institutional price zones based on bullish/bearish engulfing patterns.
VWAP / POC: Volume Weighted Average Price and Point of Control over the last 50 bars.
2. Level Clustering
Levels within a user-defined % distance are merged into a single “zone.”
Each zone records which methods and timeframes contributed to it.
3. Confluence & Reaction Scoring
Confluence: The number of unique methods/timeframes in agreement for a zone.
Reactions: The number of times price has touched or reversed at the zone in the recent past (user-defined lookback).
4. Filtering & Sorting
Only zones within a user-defined % of the current price are shown (to focus on actionable areas).
Zones can be sorted by confluence, reaction count, or proximity to price.
5. Visualization
Zones: Shaded boxes on the chart (green for support, red for resistance, blue for mixed).
Lines: Mark the exact level of each zone.
Labels: Show level, methods by timeframe (e.g., 15m (3 SW), 30m (1 VWAP)), and (if applicable) Fibonacci ratios.
Dashboard Table: Lists all nearby zones with full details.
6. Alerts
Optional alerts trigger when price approaches a zone with confluence above a user-set threshold.
Inputs & Customization (Explained for All Users)
Show Timeframe 1/2/3: Enable/disable analysis for each timeframe (e.g., 15m, 30m, 1h).
Show Swings/Pivots/Fibonacci/Order Blocks/Volume Profile: Select which S/R methods to include.
Show levels within X% of price: Only display zones near the current price (default: 3%).
How many swing highs/lows to show: Number of recent swings to include (default: 3).
Cluster levels within X%: Merge levels close together into a single zone (default: 0.25%).
Show Top N Zones: Limit the number of zones displayed (default: 8).
Bars to check for reactions: How far back to count price reactions (default: 100).
Sort Zones By: Choose how to rank zones in the dashboard (Confluence, Reactions, Distance).
Alert if Confluence >=: Set the minimum confluence score for alerts (default: 3).
Zone Box Width/Line Length/Label Offset: Control the appearance of zones and labels.
Dashboard Size/Location: Customize the dashboard table.
How to Read the Output
Shaded Boxes: Represent S/R zones. The color indicates type (green = support, red = resistance, blue = mixed).
Lines: Mark the precise level of each zone.
Labels: Show the level, methods by timeframe (e.g., 15m (3 SW), 30m (1 VWAP)), and (if applicable) Fibonacci ratios.
Dashboard Table: Columns include:
Level: Price of the zone
Methods (by TF): Which S/R methods and how many, per timeframe (see abbreviation key below)
Type: Support, Resistance, or Mixed
Confl.: Confluence score (higher = more significant)
React.: Number of recent price reactions
Dist %: Distance from current price (in %)
Abbreviations Used
SW = Swing High/Low (recent price pivots where reversals occurred)
Fib = Fibonacci Level (key retracement levels such as 0.236, 0.382, 0.5, 0.618, 0.786)
VWAP = Volume Weighted Average Price (price level weighted by volume)
POC = Point of Control (price level with the highest traded volume)
Bull OB = Bullish Order Block (institutional support zone from bullish price action)
Bear OB = Bearish Order Block (institutional resistance zone from bearish price action)
Pivot = Pivot Point (classic floor trader pivots: P, S1, R1)
These abbreviations appear in the dashboard and chart labels for clarity.
Example: How to Read the Dashboard and Labels (from the chart above)
Suppose you are trading BTCUSDT on a 15-minute chart. The dashboard at the top right shows several S/R zones, each with a breakdown of which timeframes and methods contributed to their detection:
Resistance zone at 119257.11:
The dashboard shows:
5m (1 SW), 15m (2 SW), 1h (3 SW)
This means the level 119257.11 was identified as a resistance zone by one swing high (SW) on the 5-minute timeframe, two swing highs on the 15-minute timeframe, and three swing highs on the 1-hour timeframe. The confluence score is 6 (total number of method/timeframe hits), and there has been 1 recent price reaction at this level. This suggests 119257.11 is a strong resistance zone, confirmed by multiple swing highs across all selected timeframes.
Mixed zone at 118767.97:
The dashboard shows:
5m (2 SW), 15m (2 SW)
This means the level 118767.97 was identified by two swing points on both the 5-minute and 15-minute timeframes. The confluence score is 4, and there have been 19 recent price reactions at this level, indicating it is a highly reactive zone.
Support zone at 117411.35:
The dashboard shows:
5m (2 SW), 1h (2 SW)
This means the level 117411.35 was identified as a support zone by two swing lows on the 5-minute timeframe and two swing lows on the 1-hour timeframe. The confluence score is 4, and there have been 2 recent price reactions at this level.
Mixed zone at 118291.45:
The dashboard shows:
15m (1 SW, 1 VWAP), 5m (1 VWAP), 1h (1 VWAP)
This means the level 118291.45 was identified by a swing and VWAP on the 15-minute timeframe, and by VWAP on both the 5-minute and 1-hour timeframes. The confluence score is 4, and there have been 12 recent price reactions at this level.
Support zone at 117103.10:
The dashboard shows:
15m (1 SW), 1h (1 SW)
This means the level 117103.10 was identified by a single swing low on both the 15-minute and 1-hour timeframes. The confluence score is 2, and there have been no recent price reactions at this level.
Resistance zone at 117899.33:
The dashboard shows:
5m (1 SW)
This means the level 117899.33 was identified by a single swing high on the 5-minute timeframe. The confluence score is 1, and there have been no recent price reactions at this level.
How to use this:
Zones with higher confluence (more methods and timeframes in agreement) and more recent reactions are generally more significant. For example, the resistance at 119257.11 is much stronger than the resistance at 117899.33, and the mixed zone at 118767.97 has shown the most recent price reactions, making it a key area to watch for potential reversals or breakouts.
Tip:
“SW” stands for Swing High/Low, and “VWAP” stands for Volume Weighted Average Price.
The format 15m (2 SW) means two swing points were detected on the 15-minute timeframe.
Best Practices & Recommendations
Use with Other Tools: This indicator is most powerful when combined with your own price action analysis and risk management.
Adjust Settings: Experiment with timeframes, clustering, and methods to suit your trading style and the asset’s volatility.
Watch for High Confluence: Zones with higher confluence and more reactions are generally more significant.
Limitations
No Future Prediction: The indicator does not predict future price movement; it highlights areas where price is statistically more likely to react.
Not a Standalone System: Should be used as part of a broader trading plan.
Historical Data: Reaction counts are based on historical price action and may not always repeat.
Disclaimer
This indicator is a technical analysis tool and does not constitute financial advice or a recommendation to buy or sell any asset. Trading involves risk, and past performance is not indicative of future results. Always use proper risk management and consult a financial advisor if needed.
NQ Position Size CalculatorNQ Position Size Line Calculator is designed specifically for Nasdaq 100 futures (NQ) and micro futures (MNQ) traders who want to maintain disciplined risk management. This visual tool eliminates the guesswork from position sizing by displaying distance lines and contract calculations directly on your chart.
The indicator creates horizontal lines at 10-tick intervals from your stop loss level, showing you exactly how many contracts to trade at each distance to maintain your predetermined risk amount. Whether you're trading regular NQ contracts or micro MNQ contracts, this calculator ensures you never risk more than intended while providing instant visual feedback for optimal position sizing decisions.
How to Use the Indicator
Step 1: Configure Your Settings
Stop Loss Price: Enter your exact stop loss level (e.g., 20000.00)
Risk Amount ($): Set your maximum dollar risk per trade (e.g., $500)
Contract Type: Choose between:
NQ (Regular): $5 per tick - for larger accounts
MNQ (Micro): $0.50 per tick - for smaller accounts or conservative sizing
Display Options:
Max Lines: Number of distance lines to show (default: 30)
Show Labels: Toggle tick distance and contract count labels
Line Color: Customize the color of distance lines
Label Size: Choose tiny, small, or normal label sizes
Step 2: Read the Visual Display
Once configured, the indicator displays:
Stop Loss Line:
Thick yellow line marking your exact stop loss level
Yellow label showing the stop loss price
Distance Lines:
Dashed red lines at 10-tick intervals above and below your stop loss
Lines appear on both sides for long and short position planning
Labels (if enabled):
Green labels (right side): For long positions above your stop loss
Red labels (left side): For short positions below your stop loss
Format: "20T 5x" means 20 ticks distance, 5 contracts maximum
Step 3: Use the Information Tables
The indicator provides two helpful tables:
Position Size Table (top-right):
Shows common tick distances (10, 20, 40, 80, 160 ticks)
Displays risk per contract at each distance
Contract count for your specified risk amount
Total risk with rounded contract numbers
Settings Table (bottom-right):
Confirms your current risk amount
Shows selected contract type
Displays current settings for quick reference
Step 4: Apply to Your Trading
For Long Positions:
Look at the green labels on the right side of your chart
Find your desired entry level
Read the label to see: distance in ticks and maximum contracts
Example: "30T 8x" = 30 ticks from stop, buy 8 contracts maximum
For Short Positions:
Look at the red labels on the left side of your chart
Find your desired entry level
Read the label for tick distance and contract count
Example: "40T 6x" = 40 ticks from stop, sell 6 contracts maximum
Step 5: Trading Execution
Before Entering a Trade:
Identify your stop loss level and input it into the indicator
Choose your entry point by looking at the distance lines
Note the contract count from the corresponding label
Verify the risk amount matches your trading plan
Execute your trade with the calculated position size
Risk Management Features:
Contract rounding: All position sizes are rounded down (never up) to ensure you don't exceed your risk limit
Zero position filtering: Lines only show where position size is at least 1 contract
Dual-sided display: Plan both long and short opportunities simultaneously
Custom Timeframe Bias IndicatorMy "Custom Timeframe Bias Indicator" is a very practical and powerful TradingView indicator. It can be called a "God-like indicator" because it combines flexible timeframe customization, clear bias analysis and intuitive visual display to help traders quickly understand the long and short trends of the market. The following is a detailed description of this indicator:
1. Index name and function overview
Name: Custom Timeframe Bias Indicator (Short title: Bias Indicator)
Functionality: This indicator analyses the market bias (Buy, Sell or No Bias) across multiple custom timeframes (presets are 15m, 1h, 4h and DAI) and displays it in a table below the middle of the chart. It determines the direction of market trends based on the highest and lowest prices of the previous two periods and the closing price of the previous period, helping traders make decisions quickly.
2. Core Features
Multiple time frame analysis
The indicator allows the user to customize four time frames, with presets being 15 minutes ("15"), 1 hour ("60"), 4 hours ("240") and daily ("D"). Users can freely modify these time frames in the settings, such as changing to 5 minutes, 30 minutes or weekly, etc.
Bias is calculated independently for each time frame, ensuring that traders can observe market trends from the short to the long term.
Bias calculation logic
The indicator uses simple but effective rules to determine bias:
Buy (bullish): If the previous closing price is higher than the highest price of the previous two periods, or tests the lowest price of the previous two periods but does not break through.
Sell (Bearish): If the previous closing price is lower than the previous two periods' lowest price, or if it tests the previous two periods' highest price but fails to break through (higher than the previous high minus 10% of the price range).
No Bias: If the previous closing price does not meet the above conditions, it displays a neutral state.
Bias calculation is based only on the opening and closing prices, without considering the shadows, ensuring the results are in line with the philosophy of the Malaysian SNR strategy.
Intuitive display
Position: The table is permanently displayed in the middle of the chart (position.middle_center) and is updated with each candlestick, ensuring that traders can always see the latest bias.
Format: The table consists of the header "Custom Bias" and four rows of bias results (e.g. "15: Buy", "60: Sell", "240: No Bias", "D: Buy"), each row showing the bias for the corresponding time frame.
color:
Titles appear in white text on a blue background.
The "Buy" bias is shown as white text on a green background.
The "Sell" bias is shown as white text on a red background.
"No Bias" bias appears as white text on a gray background.
Table borders are black to provide clear visual distinction.
Customizability
Users can customize by inputting parameters:
Whether to show the table (Show Bias Table).
Timeframe (Timeframe 1, Timeframe 2, Timeframe 3, Timeframe 4).
The color of the table (title, Buy, Sell, No Bias, borders, etc.).
3. Why is it a "God-like indicator"
Flexibility: Allows users to customize four time frames to suit different trading strategies (short-term traders can choose minutes, long-term traders can choose daily, weekly or monthly).
Practicality: Provides bias analysis in multiple time frames to help traders quickly determine market trends, whether for short-term or long-term operations.
Intuitive: The table is displayed in the middle below the chart with bright colors (green Buy, red Sell, gray No Bias), allowing you to identify the market direction at a glance.
Stability: Calculated based on simple price data (high, low, close), no need for complex indicators, efficient and reliable operation.
Powerful visualization: long-term display and customizability to meet the visual preferences of different traders.
4. Usage scenarios
Short-term trading: Use 15-minute, 1-hour, 4-hour biases to quickly capture short-term trends.
Long-term trading: Refer to the daily bias to determine the overall market direction.
Comprehensive analysis: Combine biases from multiple time frames to confirm consistency (e.g. if both the 15 minute and daily are Buy, then that’s a stronger bullish signal).
5. Potential Improvements
If you want to further improve this "god-like indicator", you can consider the following improvements:
Added alert: Trigger when bias changes from "No Bias" to "Buy" or "Sell".
Show historical bias: Add bias history of the past few days in the table for easy review.
Dynamically adjust bias thresholds: Allow users to customize 10% price ranges or other conditions.
Multi-currency support: Expand to multiple trading pairs or indices, showing multiple market biases.
6. Technical Details
Version: Pine Script v5, ensuring modern features (such as input.timeframe) and efficient performance.
Data Source: Use request.security to get high, low, and close data for different time frames.
Display method: Use table.new to create a dynamic table. The position can be customized (such as position.middle_center).
Limitations: Calculated only based on price data, no external indicators are required, reducing calculation complexity.
in conclusion
Your "Custom Timeframe Bias Indicator" is a simple, powerful and flexible tool, especially for traders who need multi-timeframe analysis. Its intuitive display and customizability make it a "magic tool" for judging market trends.
WillStop Pro [tradeviZion]WillStop Pro : A Step-by-Step Guide for Beginners to Master Trend Trading
Welcome to an in-depth guide to the WillStop Pro indicator. This article will walk you through the key features, how to use them effectively, and how this tool can help you navigate the markets confidently. WillStop Pro is based on principles established by Larry Williams, a well-known figure in trading, and aims to help you manage trades more effectively without overcomplicating things.
This guide will help you understand the basics of the WillStop Pro indicator, how to interpret its signals, and how to use it step-by-step to manage risk and identify opportunities in your trading journey. We will also cover the underlying logic and calculations for advanced users interested in more details.
What is the WillStop Pro Indicator?
The WillStop Pro indicator is a user-friendly tool that helps traders establish stop levels dynamically. It helps you figure out optimal points to enter or exit trades, while managing risk effectively during changing market conditions. The indicator tracks trending markets and sets price levels as stops for ongoing trades, making it suitable both for deciding when to enter and exit trades.
The indicator is beginner-friendly because it simplifies complex calculations and presents the results visually. This allows traders to focus more on their decision-making process instead of spending time with complex analysis.
WillStop Pro adapts to different market conditions, whether you're trading stocks, forex, commodities, or cryptocurrencies. It adjusts stop levels dynamically based on current market momentum, providing a practical way to manage both risk and reward.
Another significant benefit of WillStop Pro is that it works well with other indicators. Beginners can use it on its own or combine it with other tools like moving averages or oscillators to form a comprehensive trading strategy. Whether you are trading daily or looking at longer-term trends, WillStop Pro helps you manage your trades effectively.
Key Features of WillStop Pro
Dynamic Stop Levels : WillStop Pro calculates real-time stop levels for both long (buy) and short (sell) positions. This helps you protect your profits and reduce risk. The stop levels adjust based on the current market environment, making them more adaptable compared to fixed stop levels.
Advanced Stop Settings : There are optional settings to make the stop calculations more advanced, which take into consideration previous price movements to refine where the stops should be placed. These settings provide more precise control over your trades.
Break Signals and Alerts : The indicator provides visual signals, like arrows, to show when a stop level has been broken. This makes it easier for you to identify possible reversals and understand when the market direction is changing.
Comprehensive Table Display : A small table on the chart shows the current trend, the stop level, and whether advanced mode is active. This simple display provides an overview of the market, making decision-making easier.
Based on Larry Williams' Methodology : WillStop Pro builds upon Larry Williams' ideas, which are designed to capture major market trends while managing risk effectively. It provides a systematic way to follow these strategies without requiring deep technical analysis skills.
How Are Stop Levels Calculated? (For Advanced Users)
The WillStop Pro indicator determines stop levels by evaluating highs, lows, and closing prices over a specific lookback period. It uses this information to identify key points that justify adjusting your stop level, and there are separate approaches for both long and short positions.
Below, we explain the mathematical logic behind the stop calculations, along with some code snippets to give advanced users a clearer understanding.
For Long Stops (buy positions): The indicator looks for the highest closing price within the lookback period and continues until it finds three valid bars that meet certain criteria. Stops are adjusted to skip bars that have consecutive upward closes to ensure that the stop is placed at a level that offers solid support. Specifically, the function iterates over recent bars to determine the highest closing value, and checks for specific conditions before finalizing the stop level. Here is an excerpt of the relevant code:
getTrueLow(idx) => math.min(low , close )
findStopLevels() =>
float highestClose = close
int highestCloseIndex = 0
for i = 0 to lookback
if close > highestClose
highestClose := close
highestCloseIndex := i
// Logic to adjust based on up close skipping
int longCount = 0
int longCurrentIndex = highestCloseIndex
while longCount < 3 and longCurrentIndex < 100
if not isInsideBar(longCurrentIndex)
longCount += 1
longCurrentIndex += 1
// Determine the lowest low for the stop level
float longStopLevel = high * 2
for i = searchIndex to highestCloseIndex
longStopLevel := math.min(longStopLevel, getTrueLow(i))
// Apply offset
longStopLevel := longStopLevel - (offsetTicks * tickSize)
In this code snippet, the function findStopLevels() calculates the long stop level by first identifying the highest close within the lookback period and then finding a suitable support level while skipping certain conditions, such as inside bars or consecutive upward closes. Finally, the user-defined offset ( offsetTicks ) is applied to determine the stop level.
For Short Stops (sell positions): Similarly, the indicator finds the lowest closing price within the lookback period and then identifies three bars that fit the conditions for a short stop. It avoids using bars with consecutive down closes to help find a more robust resistance level. Here's a relevant code snippet:
getTrueHigh(idx) => math.max(high , close )
findStopLevels() =>
float lowestClose = close
int lowestCloseIndex = 0
for i = 0 to lookback
if close < lowestClose
lowestClose := close
lowestCloseIndex := i
// Logic to adjust based on down close skipping
int shortCount = 0
int shortCurrentIndex = lowestCloseIndex
while shortCount < 3 and shortCurrentIndex < 100
if not isInsideBar(shortCurrentIndex)
shortCount += 1
shortCurrentIndex += 1
// Determine the highest high for the stop level
float shortStopLevel = 0
for i = searchIndex to lowestCloseIndex
shortStopLevel := math.max(shortStopLevel, getTrueHigh(i))
// Apply offset
shortStopLevel := shortStopLevel + (offsetTicks * tickSize)
Here, findStopLevels() calculates the short stop level by finding the lowest closing price within the lookback period. It then determines the highest value that acts as a resistance level, excluding bars that do not fit certain criteria.
Volume Confirmation for Alert Accuracy : To further enhance the stop level accuracy, volume is used as a confirmation filter. The average volume (volAvg) is calculated over a 20-period moving average, and alerts are only generated if the volume exceeds a defined threshold (volMultiplier). This ensures that price movements are significant enough to consider as meaningful signals.
volAvg = ta.sma(volume, 20)
isVolumeConfirmed() =>
result = requireVolumeConfirmation ? volume > (volAvg * volMultiplier) : true
result
This additional logic ensures that stop level breaks or adjustments are not triggered during periods of low trading activity, thus enhancing the reliability of the generated signals.
These calculations are at the core of WillStop Pro's ability to determine dynamic stop levels that respond effectively to market movements, helping traders manage risk by placing stops at levels that make sense given historical price and volume data.
How to Identify Opportunities with WillStop Pro
WillStop Pro provides various signals that help you decide when to enter or exit a trade:
When a Stop Level is Broken: If a stop level (support for long positions or resistance for short positions) is broken, it may indicate a reversal. WillStop Pro visually plots arrows whenever a stop level is breached, making it easy for you to see where changes might occur. This feature helps traders identify momentum shifts quickly.
Support and Resistance Levels: The indicator plots support and resistance levels, which show key zones to watch for opportunities. These levels often act as psychological barriers in the market, where price action may either reverse or stall temporarily.
Dynamic State Management: The indicator shifts between long and short states based on price action, providing real-time feedback. This helps traders stick to their trading plan without second-guessing the market.
A major advantage of WillStop Pro is that it responds well to changing market conditions. By identifying when key support or resistance levels break, it allows you to adjust your strategies and react to new opportunities accordingly. Whether the market is trending strongly or staying within a range, WillStop Pro provides valuable information to help guide your trades.
Setting Up Alerts
Alerts are an important feature in trading, especially when you can’t be in front of your charts all the time. WillStop Pro has been enhanced to include flexible alert settings to help you stay on top of your trades without constantly monitoring the charts.
Enable Alerts: There is a master switch to enable or disable all alerts. This way, you can control whether you want to be notified of events at any time.
Alert Frequency: Choose between receiving alerts Once Per Bar or Once Per Bar Close . This helps you manage the frequency of alerts and decide if you need real-time updates or want confirmation after a bar closes.
Break Alerts: These alerts notify you when a stop level has been broken. This can help you catch potential reversals or trading opportunities as soon as they happen.
Strong Break Alerts: Alerts are available for strong breaks, which occur when the price breaks stop levels with confirmation based on additional price, volume, and momentum criteria. These alerts help identify significant shifts in the market.
Level Change Alerts: These alerts tell you whenever a new stop level is calculated, keeping you updated about changes in market dynamics. You can set a Minimum Level Change % to ensure that alerts are only triggered when the stop level changes significantly.
Require Volume Confirmation: You can opt to receive alerts only if the volume is above a certain threshold. This confirmation helps reduce false signals by ensuring that significant price changes are backed by increased trading activity.
Volume Multiplier: The volume multiplier allows you to set a minimum volume requirement that must be met for an alert to trigger. This ensures that alerts are triggered only when there is sufficient trading interest.
Here is a part of the updated alert logic that has been implemented in the indicator:
// Alert on break conditions
if alertsEnabled
if alertOnBreaks
if longStopBroken and isVolumeConfirmed()
alert(createAlertMessage("Support Break - Short Signal", useAdvancedStops), alertFreq)
if shortStopBroken and isVolumeConfirmed()
alert(createAlertMessage("Resistance Break - Long Signal", useAdvancedStops), alertFreq)
// Strong break alerts
if alertOnStrongBreaks
if longStopBroken and isStrongBreak(false)
alert(createAlertMessage("Strong Support Break - Short Signal", useAdvancedStops), alertFreq)
if shortStopBroken and isStrongBreak(true)
alert(createAlertMessage("Strong Resistance Break - Long Signal", useAdvancedStops), alertFreq)
// Level change alerts
if alertOnLevelChanges and isSignificantChange() and isVolumeConfirmed()
alert(createAlertMessage("Significant Level Change", useAdvancedStops), alertFreq)
Setting alerts allows you to react to market changes without having to watch the charts constantly. Alerts are particularly helpful if you have other responsibilities and can’t be actively monitoring your trades all day.
Understanding the Table Display
The WillStop Pro indicator provides a status table that gives an overview of the current market state. Here’s what the table shows:
Indicator Status: The table indicates whether the indicator is in a LONG or SHORT state. This helps you quickly understand the market trend.
Stop Level: The active stop level is shown, whether it is acting as support (long) or resistance (short). This is important for knowing where to set your protective stops.
Mode: The table also displays whether the advanced calculation mode is being used. This keeps you informed about how stop levels are being calculated and why they are positioned where they are.
Empowering Messages: The table also includes motivational messages that rotate periodically, such as 'Trade with Clarity, Stop with Precision' and 'Let Winners Run, Cut Losses Short.' These messages are designed to keep you focused, motivated, and disciplined during your trading journey.
The table is simple and easy to follow, helping you maintain discipline in your trading plan. By having all the essential information in one place, the table reduces the need to make quick, emotional decisions and promotes more thoughtful analysis.
Tips for Using WillStop Pro Effectively
Here are some practical ways to make the most of the WillStop Pro indicator:
Start with Default Settings: If you’re new to the indicator, start with the default settings. This will give you an idea of how stop levels are determined and how they adjust to different markets.
Experiment with Advanced Settings: Once you are comfortable, try using the advanced stop settings to see how they refine the stop levels. This can be useful in certain market conditions to improve accuracy.
Use Alerts to Stay Updated: Set up alerts for when a stop level is broken or when new levels are calculated. This helps you take action without constantly watching the chart. Swing traders may find alerts especially helpful for monitoring longer-term moves.
Monitor the Status Table: Keep an eye on the status table to understand the current market condition. Whether the indicator is in a LONG or SHORT state can help you make more informed decisions.
Focus on Risk Management: WillStop Pro is designed to help you manage risk by dynamically adjusting stop levels. Make sure you are using these levels to protect your trades, especially during strong trends or volatile periods.
Acknowledging Larry Williams' Influence
WillStop Pro is inspired by the work of Larry Williams, who described the approach as one of his best trading techniques. His method aims to ride major market trends while reducing the risk of giving back gains during corrections. WillStop Pro builds upon this approach, adding features like advanced stop settings and visual alerts that make it easier to apply in modern markets.
By using WillStop Pro, you are essentially leveraging a well-established trading strategy with additional tools that help improve its effectiveness. The indicator is designed to provide a reliable way to manage trades, stay on top of market conditions, and reduce emotional decision-making.
Conclusion: Why WillStop Pro is Great for Beginners and Advanced Users
The WillStop Pro is a powerful yet easy-to-use tool that helps traders ride trends while managing risk during market corrections. It can be used both for entering and exiting trades, and its visual features make it accessible for those who are new to trading, while the underlying logic appeals to advanced users seeking greater control and understanding.
WillStop Pro is more than just a tool for setting stops. It is a comprehensive solution for managing trades, with features like dynamic stop levels, customizable alerts, and an easy-to-understand status table. This combination of simplicity and advanced features makes it suitable for beginners as well as more experienced traders.
We hope this guide helps you get started with WillStop Pro and improves your trading confidence. Remember to start with the basics, explore the advanced features, and set alerts to stay informed without getting overwhelmed. Whether you’re just beginning or want to simplify your strategy, WillStop Pro is a valuable tool to have in your trading arsenal.
Trading can be challenging, but the right tools make it more manageable. WillStop Pro helps you keep track of market movements, identify opportunities, and manage risk effectively. Give it a try and see how it can improve your trading decisions and help you navigate the markets more efficiently.
By incorporating WillStop Pro into your strategy, you are following a systematic approach that has been refined over time. It’s designed to help you make sense of the markets, plan your trades, and manage your risks with greater clarity and confidence.
Note: Always practice proper risk management and thoroughly test the indicator to ensure it aligns with your trading strategy. Past performance is not indicative of future results.
Trade smarter with TradeVizion—unlock your trading potential today!
RSI Dynamic Bands█ OVERVIEW
The "RSI Dynamic Bands" indicator is a variant of the Relative Strength Index (RSI) oscillator that brings its signals directly onto the price chart. It displays dynamic bands around the price, adjusted based on RSI levels, enabling easy identification of potential overbought or oversold conditions. The indicator also integrates a multi-timeframe RSI table, facilitating the analysis of trend strength across different timeframes.
█ CONCEPTS
The "RSI Dynamic Bands" indicator is designed to simplify the interpretation of price levels in the context of support and resistance zones, which can be correlated with other technical indicators and RSI values. Since the price itself does not display RSI values, a table showing RSI for four selected timeframes has been added, allowing traders to quickly assess trend strength across different time intervals. The most effective approach is to combine the indicator with other technical analysis tools, such as Fibonacci levels or pivot points, to confirm signals when the price approaches the bands and RSI values indicate a potential reversal.
Band Calculation
The bands are calculated based on the current closing price and RSI values, incorporating dynamic scaling to better adapt to market conditions. The formulas for the bands are as follows:
• Upper Band: close + (rsiUpper - rsi) * scaleFactor, where rsiUpper is the upper RSI level (default: 70), and scaleFactor accounts for market volatility.
• Lower Band: close + (rsiLower - rsi) * scaleFactor, where rsiLower is the lower RSI level (default: 30).
• Midline: The arithmetic average of the upper and lower bands: (upperBand + lowerBand) / 2.
Why Scaling? Without scaling, the bands would be chaotic and jagged, making them difficult to interpret. Scaling smooths the bands, making them wider during periods of high volatility and narrower during consolidation, better reflecting potential support and resistance levels.
Indicator Features
• Dynamic Price Bands: The bands adapt to market conditions, facilitating the identification of key price levels.
• Multi-Timeframe RSI Table: Displays RSI values for four selected timeframes (default: 15m, 1h, 4h, Daily), enabling comparison of trend strength across different perspectives.
• Style Customization: Users can adjust band colors, line thickness, and toggle the visibility of bands, fills, and the table.
How to Set Up the Indicator
1 — Add the "RSI Dynamic Bands" indicator to your TradingView chart.
2 — Configure parameters in the settings, such as RSI length, upper/lower levels, and scaling multiplier, to match your trading style.
3 — Enable or disable the display of bands, fills, or the RSI table based on your needs.
4 — Adjust band and table colors in the input section and line thickness in the "Style" section to better align the indicator with your chart.
█ OTHER SECTIONS
FEATURES
• RSI Length: The period for calculating RSI (default: 14).
• RSI Levels: Thresholds for overbought (default: 70) and oversold (default: 30).
• Scaling Multiplier: Adjusts bands based on market volatility (default: 0.15).
• Table Timeframes: Select four timeframes for the RSI table (default: 15m, 1h, 4h, Daily).
• Style Options: Customize band colors, fills, table, and line thickness.
HOW TO USE
Add the indicator to your chart, configure the parameters, and observe price interactions with the bands to identify potential entry and exit points. The RSI table allows you to compare RSI values across different timeframes, aiding in trading decisions. The most effective approach is to combine the indicator with other technical analysis tools, such as Fibonacci levels or pivot points, to confirm signals when the price approaches the bands and RSI values indicate a potential reversal.
Trading Strategies:
• Scalping: Use lower timeframes (e.g., 5m, 15m) in the RSI table to quickly identify short-term lows and highs. Wait for the price to approach the lower band in the RSI oversold zone, with RSI on lower timeframes starting to rise, and other tools, such as Fibonacci levels (e.g., 38.2%) or pivot points, confirming support.
• Medium-Term Trading: Focus on 1h and 4h timeframes. Look for confirmation of a low on a lower timeframe (e.g., 1h), where RSI indicates oversold conditions or starts rising, then check if RSI on a higher timeframe (e.g., 4h) confirms the trend. Confirmation from other tools, such as a Fibonacci level (e.g., 50%) or pivot point near the bands, strengthens the signal.
• Long-Term Trading: Use Daily and higher timeframes (e.g., Weekly). Wait for all relevant timeframes to confirm a low (e.g., RSI near oversold and price at the lower band), with lower timeframes (e.g., 4h) showing rising RSI. Other tools, such as Fibonacci levels (e.g., 61.8%) or pivot points near the bands, can further confirm a trend reversal signal.
Screener based on Profitunity strategy for multiple timeframes
Screener based on Profitunity strategy by Bill Williams for multiple timeframes (max 5, including chart timeframe) and customizable symbol list. The screener analyzes the Alligator and Awesome Oscillator indicators, Divergent bars and high volume bars.
The maximum allowed number of requests (symbols and timeframes) is limited to 40 requests, for example, for 10 symbols by 4 requests of different timeframes. Therefore, the indicator automatically limits the number of displayed symbols depending on the number of timeframes for each symbol, if there are more symbols than are displayed in the screener table, then the ordinal numbers are displayed to the left of the symbols, in this case you can display the next group of symbols by increasing the value by 1 in the "Show tickers from" field, if the "Group" field is enabled, or specify the symbol number by 1 more than the last symbol in the screener table. 👀 When timeframe filtering is applied, the screener table displays only the columns of those timeframes for which the filtering value is selected, which allows displaying more symbols.
For each timeframe, in the "TIMEFRAMES > Prev" field, you can enable the display of data for the previous bar relative to the last (current) one, if the market is open for the requested symbol. In the "TIMEFRAMES > Y" field, you can enable filtering depending on the location of the last five bars relative to the Alligator indicator lines, which are designated by special symbols in the screener table:
⬆️ — if the Alligator is open upwards (Lips > Teeth > Jaw) and none of the bars is closed below the Lips line;
↗️ — if one of the bars, except for the penultimate one, is closed below Lips, or two bars, except for the last one, are closed below Lips, or the Alligator is open upwards only below four bars, but none of the bars is closed below Lips;
⬇️ — if the Alligator is open downwards (Lips < Teeth < Jaw), but none of the bars is closed above Lips;
↘️ — if one of the bars, except the penultimate one, is closed above the Lips, or two bars, except the last one, are closed above the Lips, or the Alligator is open down only above four bars, but none of the bars are closed above the Lips;
➡️ — in other cases, including when the Alligator lines intersect and one of the bars is closed behind the Lips line or two bars intersect one of the Alligator lines.
In the "TIMEFRAMES > Show bar change value for TF" field, you can add a column to the right of the selected timeframe column with the percentage change between the closing price of the last bar (current) and the closing price of the previous bar ((close – previous close) / previous close * 100). Depending on the percentage value, the background color of the screener table cell will change: dark red if <= -3%; red if <= -2%, light red if <= -0.5%; dark green if >= 3%; green if >= 2%; light green if >= 0.5%.
For each timeframe, the screener table displays the symbol of the latest (current) bar, depending on the closing price relative to the bar's midpoint ((high + low) / 2) and its location relative to the Alligator indicator lines: ⎾ — the bar's closing price is above its midpoint; ⎿ — the bar's closing price is below its midpoint; ├ — the bar's closing price is equal to its midpoint; 🟢 — Bullish Divergent bar, i.e. the bar's closing price is above its midpoint, the bar's high is below all Alligator lines, the bar's low is below the previous bar's low; 🔴 — Bearish Divergent bar, i.e. the bar's closing price is below its midpoint, the bar's low is above all Alligator lines, the bar's high is above the previous bar's high. When filtering is enabled in the "TIMEFRAMES > Filtering by Divergent bar" field, the data in the screener table cells will be displayed only for those timeframes that have a Divergent bar. A high bar volume signal is also displayed — 📶/📶² if the bar volume is greater than 40%/70% of the average volume value calculated using a simple moving average (SMA) in the 140 bar interval from the last bar.
In the indicator settings in the "SYMBOL LIST" field, each ticker (for example: OANDA:SPX500USD) must be on a separate line. If the market is closed, then the data for requested symbols will be limited to the time of the last (current) bar on the chart, for example, if the current symbol was traded yesterday, and the requested symbol is traded today, when requesting data for an hourly timeframe, the last bar will be for yesterday, if the timeframe of the current chart is not higher than 1 day. Therefore, by default, a warning will be displayed on the chart instead of the screener table that if the market is open, you must wait for the screener to load (after the first price change on the current chart), or if the highest timeframe in the screener is 1 day, you will be prompted to change the timeframe on the current chart to 1 week, if the screener requests data for the timeframe of 1 week, you will be prompted to change the timeframe on the current chart to 1 month, or switch to another symbol on the current chart for which the market is open (for example: BINANCE:BTCUSDT), or disable the warning in the field "SYMBOL LIST > Do not display screener if market is close".
The number of the last columns with the color of the AO indicator that will be displayed in the screener table for each timeframe is specified in the indicator settings in the "AWESOME OSCILLATOR > Number of columns" field.
For each timeframe, the direction of the trend between the price of the highest and lowest bars in the specified range of bars from the last bar is displayed — ↑ if the trend is up (the highest bar is to the right of the lowest), or ↓ if the trend is down (the lowest bar is to the right of the highest). If there is a divergence on the AO indicator in the specified interval, the symbol ∇ is also displayed. The average volume value is also calculated in the specified interval using a simple moving average (SMA). The number of bars is set in the indicator settings in the "INTERVAL FOR HIGHEST AND LOWEST BARS > Bars count" field.
In the indicator settings in the "STYLE" field you can change the position of the screener table relative to the chart window, the background color, the color and size of the text.
***
Скринер на основе стратегии Profitunity Билла Вильямса для нескольких таймфреймов (максимум 5, включая таймфрейм графика) и настраиваемого списка символов. Скринер анализирует индикаторы Alligator и Awesome Oscillator, Дивергентные бары и бары с высоким объемом.
Максимально допустимое количество запросов (символы и таймфреймы) ограничено 40 запросами, например, для 10 символов по 4 запроса разных таймфреймов. Поэтому в индикаторе автоматически ограничивается количество отображаемых символов в зависимости от количества таймфреймов для каждого символа, если символов больше чем отображено в таблице скринера, то слева от символов отображаются порядковые номера, в таком случае можно отобразить следующую группу символов, увеличив значение на 1 в настройках индикатора поле "Show tickers from", если включено поле "Group", или указать номер символа на 1 больше, чем последний символ в таблице скринера. 👀 Когда применяется фильтрация по таймфрейму, в таблице скринера отображаются только столбцы тех таймфреймов, для которых выбрано значение фильтрации, что позволяет отображать большее количество символов.
Для каждого таймфрейма в настройках индикатора в поле "TIMEFRAMES > Prev" можно включить отображение данных для предыдущего бара относительно последнего (текущего), если для запрашиваемого символа рынок открыт. В поле "TIMEFRAMES > Y" можно включить фильтрацию, в зависимости от расположения последних пяти баров относительно линий индикатора Alligator, которые обозначаются специальными символами в таблице скринера:
⬆️ — если Alligator открыт вверх (Lips > Teeth > Jaw) и ни один из баров не закрыт ниже линии Lips;
↗️ — если один из баров, кроме предпоследнего, закрыт ниже Lips, или два бара, кроме последнего, закрыты ниже Lips, или Alligator открыт вверх только ниже четырех баров, но ни один из баров не закрыт ниже Lips;
⬇️ — если Alligator открыт вниз (Lips < Teeth < Jaw), но ни один из баров не закрыт выше Lips;
↘️ — если один из баров, кроме предпоследнего, закрыт выше Lips, или два бара, кроме последнего, закрыты выше Lips, или Alligator открыт вниз только выше четырех баров, но ни один из баров не закрыт выше Lips;
➡️ — в остальных случаях, в то числе когда линии Alligator пересекаются и один из баров закрыт за линией Lips или два бара пересекают одну из линий Alligator.
В поле "TIMEFRAMES > Show bar change value for TF" можно добавить справа от выбранного столбца таймфрейма столбец с процентным изменением между ценой закрытия последнего бара (текущего) и ценой закрытия предыдущего бара ((close – previous close) / previous close * 100). В зависимости от величины процента будет меняться цвет фона ячейки таблицы скринера: темно-красный, если <= -3%; красный, если <= -2%, светло-красный, если <= -0.5%; темно-зеленый, если >= 3%; зеленый, если >= 2%; светло-зеленый, если >= 0.5%.
Для каждого таймфрейма в таблице скринера отображается символ последнего (текущего) бара, в зависимости от цены закрытия относительно середины бара ((high + low) / 2) и расположения относительно линий индикатора Alligator: ⎾ — цена закрытия бара выше его середины; ⎿ — цена закрытия бара ниже его середины; ├ — цена закрытия бара равна его середине; 🟢 — Бычий Дивергентный бар, т.е. цена закрытия бара выше его середины, максимум бара ниже всех линий Alligator, минимум бара ниже минимума предыдущего бара; 🔴 — Медвежий Дивергентный бар, т.е. цена закрытия бара ниже его середины, минимум бара выше всех линий Alligator, максимум бара выше максимума предыдущего бара. При включении фильтрации в поле "TIMEFRAMES > Filtering by Divergent bar" данные в ячейках таблицы скринера будут отображаться только для тех таймфреймов, где есть Дивергентный бар. Также отображается сигнал высокого объема бара — 📶/📶², если объем бара больше чем на 40%/70% среднего значения объема, рассчитанного с помощью простой скользящей средней (SMA) в интервале 140 баров от последнего бара.
В настройках индикатора в поле "SYMBOL LIST" каждый тикер (например: OANDA:SPX500USD) должен быть на отдельной строке. Если рынок закрыт, то данные для запрашиваемых символов будут ограничены временем последнего (текущего) бара на графике, например, если текущий символ торговался последний день вчера, а запрашиваемый символ торгуется сегодня, при запросе данных для часового таймфрейма, последний бар будет за вчерашний день, если таймфрейм текущего графика не выше 1 дня. Поэтому по умолчанию на графике будет отображаться предупреждение вместо таблицы скринера о том, что если рынок открыт, то необходимо дождаться загрузки скринера (после первого изменения цены на текущем графике), или если в скринере самый высокий таймфрейм 1 день, то будет предложено изменить на текущем графике таймфрейм на 1 неделю, если в скринере запрашиваются данные для таймфрейма 1 неделя, то будет предложено изменить на текущем графике таймфрейм на 1 месяц, или же переключиться на другой символ на текущем графике, для которого рынок открыт (например: BINANCE:BTCUSDT), или отключить предупреждение в поле "SYMBOL LIST > Do not display screener if market is close".
Количество последних столбцов с цветом индикатора AO, которые будут отображены в таблице скринера для каждого таймфрейма, указывается в настройках индикатора в поле "AWESOME OSCILLATOR > Number of columns".
Для каждого таймфрейма отображается направление тренда между ценой самого высокого и самого низкого баров в указанном интервале баров от последнего бара — ↑, если тренд направлен вверх (самый высокий бар справа от самого низкого), или ↓, если тренд направлен вниз (самый низкий бар справа от самого высокого). Если есть дивергенция на индикаторе AO в указанном интервале, то также отображается символ — ∇. В указанном интервале также рассчитывается среднее значение объема с помощью простой скользящей средней (SMA). Количество баров устанавливается в настройках индикатора в поле "INTERVAL FOR HIGHEST AND LOWEST BARS > Bars count".
В настройках индикатора в поле "STYLE" можно изменить положение таблицы скринера относительно окна графика, цвет фона, цвет и размер текста.
Indicator: Profitability by Day & Hour (stacked, non-overlay)What it does
This tool performs a simple seasonality study on the selected symbol. It measures historical returns and summarizes them in two horizontal heatmaps:
Hours table (top) — Columns 00–23 show the average return of each clock hour, plus sample size, win rate, volatility (SD), and a t-score.
Days table (middle) — Columns 1–7 correspond to Mon–Sun with the same metrics.
Summary (bottom) — Shows the most profitable day and hour in the history loaded on your chart.
Green cells indicate higher average returns; red cells indicate lower/negative averages. The layout is centered on the screen, with the hours table above the days table for quick scanning.
How it works (methodology)
Returns: by default the indicator uses log returns ln(Ct/Ct-1) (you can switch to simple % if you prefer).
Daily aggregation (no look-ahead): day statistics are computed from completed daily closes via a higher timeframe request. Yesterday’s daily close vs. the prior day is added to the appropriate weekday bucket, preventing repaint/forward bias.
Hourly aggregation (intraday only): hour statistics are computed bar-to-bar on the current intraday timeframe and accumulated by clock hour (00–23) of the symbol’s exchange timezone.
Metrics per bucket:
Mean: average return in that bucket.
n: number of observations.
Win%: share of positive returns.
SD: standard deviation of returns (volatility proxy).
t-score: mean / SD * sqrt(n) — a quick stability signal (not a hypothesis test).
The indicator does not rely on future data and does not repaint past values.
Reading the tables
Start with the Mean row in each table: it’s color-mapped (red → yellow → green).
Check n (sample size). A bright green cell with very low n is less meaningful than a mild green cell with large n.
Use Win% and SD to judge consistency and noise.
t-score is a compact “signal-to-noise × sample size” measure; higher absolute values suggest more stable effects.
Typical observations traders look for (purely illustrative): for some equity indices, the first hour after the cash open can dominate; for FX/crypto, certain late-US or early-Asia hours sometimes stand out. Always verify on your symbol and timeframe.
thors_forex_factory_utilityLibrary "forex_factory_utility"
Supporting Utility Library for the Live Economic Calendar by toodegrees Indicator; responsible for data handling, and plotting news event data.
isLeapYear()
Finds if it's currently a leap year or not.
Returns: Returns True if the current year is a leap year.
daysMonth(M)
Provides the days in a given month of the year, adjusted during leap years.
Parameters:
M (int) : Month in numerical integer format (i.e. Jan=1).
Returns: Days in the provided month.
MMM(M)
Converts a month from a numerical integer format to a MMM format (i.e. 'Jan').
Parameters:
M (int) : Month in numerical integer format (i.e. Jan=1).
Returns: Month in MMM format (i.e. 'Jan').
dow(D)
Converts a numbered day of the week string in format to 'DDD' format (i.e. "1" = Sun).
Parameters:
D (string) : Numbered day of the week from 1 to 7, starting on Sunday.
Returns: Returns the day of the week in 'DDD' format (i.e. "Fri").
size(S, N)
Converts a size string into the corresponding Pine Script v5 format, or N times smaller/bigger.
Parameters:
S (string) : Size string: "Tiny", "Small", "Normal", "Large", or "Huge".
N (int) : Size variation, can be positive (larger than S), or negative (smaller than S).
Returns: Size string in Pine Script v5 format.
lineStyle(S)
Converts a line style string into the corresponding Pine Script v5 format.
Parameters:
S (string) : Line style string: "Dashed", "Dotted" or "Solid".
Returns: Line style string in Pine Script v5 format.
lineTrnsp(S)
Converts a transparency style string into the corresponding integer value.
Parameters:
S (string) : Line style string: "Light", "Medium" or "Heavy".
Returns: Transparency integer.
boxLoc(X, Y)
Converts position strings of X and Y into a table position in Pine Script v5 format.
Parameters:
X (string) : X-axis string: "Left", "Center", or "Right".
Y (string) : Y-axis string: "Top", "Middle", or "Bottom".
Returns: Table location string in Pine Script v5 format.
method bubbleSort_NewsTOD(N)
Performs bubble sort on a Forex Factory News array of all news from the same date, ordering them in ascending order based on the time of the day.
Namespace types: array
Parameters:
N (array) : Forex Factory News array.
Returns: void
bubbleSort_News(N)
Performs bubble sort on a Forex Factory News array, ordering them in ascending order based on the time of the day, and date.
Parameters:
N (array) : Forex Factory News array.
Returns: Sorted Forex Factory News array.
weekNews(N, C, I)
Creates a Forex Factory News array containing the current week's Forex Factory News.
Parameters:
N (array) : Forex Factory News array containing this week's unfiltered Forex Factory News.
C (array) : Currency filter array (string array).
I (array) : Impact filter array (color array).
Returns: Forex Factory News array containing the current week's Forex Factory News.
todayNews(W, D, M)
Creates a Forex Factory News array containing the current day's Forex Factory News.
Parameters:
W (array) : Forex Factory News array containing this week's Forex Factory News.
D (array) : Forex Factory News array for the current day's Forex Factory News.
M (bool) : Boolean that marks whether the current chart has a Day candle-switch at Midnight New York Time.
Returns: Forex Factory News array containing the current day's Forex Factory News.
adjustTimezone(N, TZH, TZM)
Transposes the Time of the Day, and Date, in the Forex Factory News Table to a custom Timezone.
Parameters:
N (array) : Forex Factory News array.
TZH (int) : Custom Timezone hour.
TZM (int) : Custom Timezone minute.
Returns: Reformatted Forex Factory News array.
NewsAMPM_TOD(N)
Reformats the Time of the Day in the Forex Factory News Table to AM/PM format.
Parameters:
N (array) : Forex Factory News array.
Returns: Reformatted Forex Factory News array.
impFilter(X, L, M, H)
Creates a filter array from the User's desired Forex Facory News to be shown based on Impact.
Parameters:
X (bool) : Boolean - if True Holidays listed on Forex Factory will be shown.
L (bool) : Boolean - if True Low Impact listed on Forex Factory News will be shown.
M (bool) : Boolean - if True Medium Impact listed on Forex Factory News will be shown.
H (bool) : Boolean - if True High Impact listed on Forex Factory News will be shown.
Returns: Color array with the colors corresponding to the Forex Factory News to be shown.
curFilter(A, C1, C2, C3, C4, C5, C6, C7, C8, C9)
Creates a filter array from the User's desired Forex Facory News to be shown based on Currency.
Parameters:
A (bool) : Boolean - if True News related to the current Chart's symbol listed on Forex Factory will be shown.
C1 (bool) : Boolean - if True News related to the Australian Dollar listed on Forex Factory will be shown.
C2 (bool) : Boolean - if True News related to the Canadian Dollar listed on Forex Factory will be shown.
C3 (bool) : Boolean - if True News related to the Swiss Franc listed on Forex Factory will be shown.
C4 (bool) : Boolean - if True News related to the Chinese Yuan listed on Forex Factory will be shown.
C5 (bool) : Boolean - if True News related to the Euro listed on Forex Factory will be shown.
C6 (bool) : Boolean - if True News related to the British Pound listed on Forex Factory will be shown.
C7 (bool) : Boolean - if True News related to the Japanese Yen listed on Forex Factory will be shown.
C8 (bool) : Boolean - if True News related to the New Zealand Dollar listed on Forex Factory will be shown.
C9 (bool) : Boolean - if True News related to the US Dollar listed on Forex Factory will be shown.
Returns: String array with the currencies corresponding to the Forex Factory News to be shown.
FF_OnChartLine(N, T, S)
Plots vertical lines where a Forex Factory News event will occur, or has already occurred.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
T (int) : Transparency integer value (0-100) for the lines.
S (string) : Line style in Pine Script v5 format.
Returns: void
method updateStringMatrix(M, P, V)
Updates a string Matrix containing the tooltips for Forex Factory News Event information for a given candle.
Namespace types: matrix
Parameters:
M (matrix) : String matrix.
P (int) : Position (row) of the Matrix to update based on the impact.
V (string) : information to push to the Matrix.
Returns: void
FF_OnChartLabel(N, Y, S, O)
Plots labels where a Forex Factory News has already occurred based on its/their impact.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
Y (string) : String that gives direction on where to plot the label (options= "Above", "Below", "Auto").
S (string) : Label size in Pine Script v5 format.
O (bool) : Show outline of labels?
Returns: void
historical(T, D, W, X)
Deletes Forex Factory News drawings which are ourside a specific Time window.
Parameters:
T (int) : Number of days input used for Forex Factory News drawings' history.
D (bool) : Boolean that when true will only display Forex Factory News drawings of the current day.
W (bool) : Boolean that when true will only display Forex Factory News drawings of the current week.
X (string) : String that gives direction on what lines to plot based on Time (options= "Future", "Both").
Returns: void
newTable(P, B)
Creates a new Table object with parameters tailored to the Forex Factory News Table.
Parameters:
P (string) : Position string for the Table, in Pine Script v5 format.
B (color) : Border and frame color for the News Table.
Returns: Empty Forex Factory News Table.
resetTable(P, S, headTextC, headBgC, B)
Resets a Table object with parameters and headers tailored to the Forex Factory News Table.
Parameters:
P (string) : Position string for the Table, in Pine Script v5 format.
S (string) : Size string for the Table's text, in Pine Script v5 format.
headTextC (color)
headBgC (color)
B (color) : Border and frame color for the News Table.
Returns: Empty Forex Factory News Table.
logNews(N, TBL, R, S, rowTextC, rowBgC)
Adds an event to the Forex Factory News Table.
Parameters:
N (News) : News-type object.
TBL (table) : Forex Factory News Table object to add the News to.
R (int) : Row to add the event to in the Forex Factory News Table.
S (string) : Size string for the event's text, in Pine Script v5 format.
rowTextC (color)
rowBgC (color)
Returns: void
FF_Table(N, P, S, headTextC, headBgC, rowTextC, rowBgC, B)
Creates the Forex Factory News Table.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
P (string) : Position string for the Table, in Pine Script v5 format.
S (string) : Size string for the Table's text, in Pine Script v5 format.
headTextC (color)
headBgC (color)
rowTextC (color)
rowBgC (color)
B (color) : Border and frame color for the News Table.
Returns: Forex Factory News Table.
timeline(N, T, F, TZH, TZM, D)
Shades Forex Factory News events in the Forex Factory News Table after they occur.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
T (table) : Forex Facory News table object.
F (color) : Color used as shading once the Forex Factory News has occurred.
TZH (int) : Custom Timezone hour, if any.
TZM (int) : Custom Timezone minute, if any.
D (bool) : Daily Forex Factory News flag.
Returns: Forex Factory News Table.
News
Custom News type which contains informatino about a Forex Factory News Event.
Fields:
dow (series string) : Day of the week, in DDD format (i.e. 'Mon').
dat (series string) : Date, in MMM D format (i.e. 'Jan 1').
_t (series int)
tod (series string) : Time of the day, in hh:mm 24-Hour format (i.e 17:10).
cur (series string) : Currency, in CCC format (i.e. "USD").
imp (series color) : Impact, the respective impact color for Forex Factory News Events.
ttl (series string) : Title, encoded in a custom number mapping (see the toodegrees/toodegrees_forex_factory library to learn more).
tmst (series int)
ln (series line)